https://wiki.archlinux.org/api.php?action=feedcontributions&user=Canha&feedformat=atomArchWiki - User contributions [en]2024-03-29T06:25:31ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=StrongSwan&diff=614295StrongSwan2020-05-18T20:56:14Z<p>Canha: Add some troubleshooting for "Connection established but no traffic"</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Virtual Private Network]]<br />
[[ja:StrongSwan]]<br />
[[zh-hans:StrongSwan]]<br />
{{Related articles start}}<br />
{{Related|Openswan L2TP/IPsec VPN client setup}}<br />
{{Related articles end}}<br />
<br />
IPSec is an encryption and authentication standard that can be used to build secure Virtual Private Networks (VPNs).<br />
<br />
It is natively supported by the Linux kernel, but configuration of encryption keys is left to the user. The [[wikipedia:Internet_Key_Exchange|IKE]] protocols are therefore used in IPSec VPNs to automatically negotiate key exchanges securely using a variety of means, including certificates, pre-shared keys or both.<br />
<br />
They are typically implemented in userspace daemons on the server side. [https://strongswan.org/ strongSwan] is an IKE daemon with full support for<br />
IKEv1 and IKEv2. It is natively supported by most modern clients, including Linux, Windows 7, Apple iOS, Mac OSX, FreeBSD and BlackBerry OS.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|strongswan}} package.<br />
<br />
== Certificates ==<br />
<br />
The first step is to generate the X.509 certificates, including a certificate<br />
authority (CA), a server certificate, and at least one client certificate.<br />
<br />
=== Certificate Authority ===<br />
<br />
Let us start by creating a self-signed root CA certificate:<br />
<br />
$ cd /etc/ipsec.d/<br />
$ ipsec pki --gen --type rsa --size 4096 --outform pem > private/strongswanKey.pem<br />
$ chmod 600 private/strongswanKey.pem<br />
$ ipsec pki --self --ca --lifetime 3650 --outform pem \<br />
--in private/strongswanKey.pem --type rsa \<br />
--dn "C=CH, O=strongSwan, CN=strongSwan Root CA" \<br />
> cacerts/strongswanCert.pem<br />
<br />
The result is a 4096 bit RSA private key {{ic|strongswanKey.pem}} (line 2) and<br />
a self-signed CA certificate {{ic|strongswanCert.pem}} (line 7) with a<br />
validity of 10 years (3650 days). The files are stored in PEM encoded format.<br />
<br />
You can change the Distinguished Name (DN) to more relevant values for country<br />
(C), organization (O), and common name (CN), but you do not have to.<br />
<br />
To list the properties of your newly generated certificate, type in the<br />
following command:<br />
<br />
{{hc|$ ipsec pki --print --in cacerts/strongswanCert.pem|2=<br />
cert: X509<br />
subject: "C=CH, O=strongSwan, CN=strongSwan Root CA"<br />
issuer: "C=CH, O=strongSwan, CN=strongSwan Root CA"<br />
validity: not before Nov 22 11:55:41 2013, ok<br />
not after Nov 20 11:55:41 2023, ok (expires in 3649 days)<br />
serial: 65:39:93:df:a0:f8:40:03<br />
flags: CA CRLSign self-signed<br />
authkeyId: 45:30:11:da:a4:0e:0b:0a:a3:41:a5:81:41:ab:d8:04:7a:40:6c:c0<br />
subjkeyId: 45:30:11:da:a4:0e:0b:0a:a3:41:a5:81:41:ab:d8:04:7a:40:6c:c0<br />
pubkey: RSA 4096 bits<br />
keyid: dc:15:91:95:04:07:a5:13:69:5f:77:65:26:d7:02:3f:60:ec:73:c8<br />
subjkey: 45:30:11:da:a4:0e:0b:0a:a3:41:a5:81:41:ab:d8:04:7a:40:6c:c0<br />
}}<br />
<br />
{{Warning|The private key {{ic|/etc/ipsec.d/private/strongswanKey.pem}} of the CA should be moved somewhere safe, possibly to a special signing host without access to the Internet. Theft of this master signing key would completely compromise your public key infrastructure.}}<br />
<br />
=== Host Certificate ===<br />
<br />
This certificate will be used to authenticate the VPN server. Run the following<br />
commands:<br />
<br />
$ cd /etc/ipsec.d/<br />
$ ipsec pki --gen --type rsa --size 2048 --outform pem > private/vpnHostKey.pem<br />
$ chmod 600 private/vpnHostKey.pem<br />
$ ipsec pki --pub --in private/vpnHostKey.pem --type rsa | \<br />
ipsec pki --issue --lifetime 730 --outform pem \<br />
--cacert cacerts/strongswanCert.pem \<br />
--cakey private/strongswanKey.pem \<br />
--dn "C=CH, O=strongSwan, CN='''vpn.example.com'''" \<br />
--san '''vpn.example.com''' \<br />
--flag serverAuth --flag ikeIntermediate \<br />
> certs/vpnHostCert.pem<br />
<br />
The result is a 2048 bit RSA private key {{ic|vpnHostKey.pem}} (line 2). In<br />
line 4 we extract its public key and pipe it over to issue<br />
{{ic|vpnHostCert.pem}} (line 11), a host certificate signed by your CA. The<br />
certificate has a validity of two years (730 days). It identifies the VPN host<br />
by its Fully Qualified Domain Name (FQDN) (here: {{ic|vpn.example.com}}).<br />
<br />
{{Warning|The domain name or IP address of your VPN server, which is later entered in the client's connection properties, MUST be contained either in the subject Distinguished Name ({{ic|1=CN=}}) and/or in a subject Alternative Name ({{ic|--san}}), but preferably in both. Make sure both times to replace {{ic|'''vpn.example.com'''}} with your VPN's hostname – or else the connection between client and server will fail!}}<br />
<br />
{{Note|If you are going to use the built-in VPN client of Windows 7, you [https://wiki.strongswan.org/projects/strongswan/wiki/Win7CertReq MUST] add the {{ic|serverAuth}} extended key usage flag to your host certificate as shown above, or the client will refuse to connect.<br />
<br />
In addition, OS X 10.7.3 or older requires the {{ic|ikeIntermediate}} flag, which we also added here.<br />
<br />
Since the addition of these two flags probably will not hurt anyone, you should make sure you keep them there.}}<br />
<br />
Let us take a look at the properties of our newly generated certificate.<br />
<br />
{{hc|$ ipsec pki --print --in certs/vpnHostCert.pem|2=<br />
cert: X509<br />
subject: "C=CH, O=strongSwan, CN=vpn.example.com"<br />
issuer: "C=CH, O=strongSwan, CN=strongSwan Root CA"<br />
validity: not before Nov 22 21:16:51 2013, ok<br />
not after Nov 22 21:16:51 2015, ok (expires in 729 days)<br />
serial: 0c:05:d7:d5:57:0e:d9:48<br />
altNames: vpn.example.com<br />
flags: serverAuth iKEIntermediate <br />
authkeyId: 9b:57:35:fb:cd:9e:2d:20:37:1d:61:4c:e7:c4:5b:5e:dc:64:ad:fc<br />
subjkeyId: 5f:12:c2:06:ee:2b:1e:cc:5f:78:54:ff:f0:f3:7b:a0:2b:c0:b4:d6<br />
pubkey: RSA 2048 bits<br />
keyid: 6f:a7:99:60:27:27:09:96:02:c1:b9:d9:7d:c1:b0:10:e3:e1:d5:45<br />
subjkey: 5f:12:c2:06:ee:2b:1e:cc:5f:78:54:ff:f0:f3:7b:a0:2b:c0:b4:d6<br />
}}<br />
<br />
=== Client Certificate ===<br />
<br />
Any client will require a personal certificate in order to use the VPN. The<br />
process is analogous to generating a host certificate, except that we identify<br />
a client certificate by the client's e-mail address rather than a hostname.<br />
<br />
$ cd /etc/ipsec.d/<br />
$ ipsec pki --gen --type rsa --size 2048 --outform pem > private/ClientKey.pem<br />
$ chmod 600 private/ClientKey.pem<br />
$ ipsec pki --pub --in private/ClientKey.pem --type rsa | \<br />
ipsec pki --issue --lifetime 730 --outform pem \<br />
--cacert cacerts/strongswanCert.pem \<br />
--cakey private/strongswanKey.pem \<br />
--dn "C=CH, O=strongSwan, CN=myself@example.com" \<br />
--san myself@example.com \<br />
> certs/ClientCert.pem<br />
<br />
The result is a 2048 bit RSA private key {{ic|ClientKey.pem}} (line 2).<br />
In line 6 we extract its public key and pipe it over to issue {{ic|ClientCert.pem}} (line 10), the first client certificate signed by your CA.<br />
The certificate has a validity of two years (730 days) and identifies the client by his e-mail address (here: {{ic|myself@example.com}}).<br />
<br />
Finally we will bundle all needed certificates and keys into a PKCS#12 file with a passphrase, which is the most convenient format for clients.<br />
<br />
$ openssl pkcs12 -export -name "My own VPN client certificate" \<br />
-inkey private/ClientKey.pem \<br />
-in certs/ClientCert.pem \<br />
-certfile cacerts/strongswanCert.pem \<br />
-caname "strongSwan Root CA" \<br />
-out Client.p12<br />
<br />
== VPN Variants ==<br />
<br />
The easiest configuration to get running with is IPSec in tunnel mode, described below.<br />
<br />
=== IPSec in tunnel mode ===<br />
<br />
VPN configuration can be found in {{ic|/etc/ipsec.conf}}. The following<br />
contains the necessary options to build a basic, functional VPN server:<br />
<br />
{{hc|/etc/ipsec.conf|<nowiki># ipsec.conf - strongSwan IPsec configuration file<br />
config setup<br />
<br />
# By default only one client can connect at the same time with an identical<br />
# certificate and/or password combination. Enable this option to disable<br />
# this behavior.<br />
# uniqueids=never<br />
<br />
# Slightly more verbose logging. Very useful for debugging.<br />
charondebug="cfg 2, dmn 2, ike 2, net 2"<br />
<br />
# Default configuration options, used below if an option is not specified.<br />
# See: https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection<br />
conn %default<br />
<br />
# Use IKEv2 by default<br />
keyexchange=ikev2<br />
<br />
# Prefer modern cipher suites that allow PFS (Perfect Forward Secrecy)<br />
ike=aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024!<br />
esp=aes128gcm16-ecp256,aes256gcm16-ecp384,aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024,aes128gcm16,aes256gcm16,aes128-sha256,aes128-sha1,aes256-sha384,aes256-sha256,aes256-sha1!<br />
<br />
# Dead Peer Discovery<br />
dpdaction=clear<br />
dpddelay=300s<br />
<br />
# Do not renegotiate a connection if it is about to expire<br />
rekey=no<br />
<br />
# Server side<br />
left=%any<br />
leftsubnet=0.0.0.0/0<br />
leftcert=vpnHostCert.pem<br />
<br />
# Client side<br />
right=%any<br />
rightdns=8.8.8.8,8.8.4.4<br />
rightsourceip=%dhcp<br />
<br />
# IKEv2: Newer version of the IKE protocol<br />
conn IPSec-IKEv2<br />
keyexchange=ikev2<br />
auto=add<br />
<br />
# IKEv2-EAP<br />
conn IPSec-IKEv2-EAP<br />
also="IPSec-IKEv2"<br />
rightauth=eap-mschapv2<br />
rightsendcert=never<br />
eap_identity=%any<br />
<br />
# IKEv1 (Cisco-compatible version)<br />
conn CiscoIPSec<br />
keyexchange=ikev1<br />
# forceencaps=yes<br />
rightauth=pubkey<br />
rightauth2=xauth<br />
auto=add<br />
</nowiki>}}<br />
<br />
=== IPSec in transport mode ===<br />
<br />
{{Expansion|Need to better explain the differences, advantages and inconvenients, then write a tutorial.}}<br />
<br />
Compared to tunnel mode, transport mode does not encrypt the original IP header from its point of view. This is useful if something else (i.e. GRE) has already encapsulated the original packet to be transported through a tunnel, before IPSec gets it. From the point of view of IPSec, the IP header it thinks is the original is actually the IP header already setup for the tunneling, and it will encrypt what is truly the original IP header as just part of the encapsulated packet payload, without realizing it's doing it.<br />
<br />
=== IPSec/L2TP ===<br />
<br />
The [[L2TP/IPsec VPN client setup]] page describes how to setup a client to connect to an IPSec/L2TP server. This variant of an IPSec VPN has the advantage of allowing to tunnel non-IP packets, contrary to pure IPSec, but at the expense of having to run an additional L2TP daemon.<br />
<br />
{{Expansion|Need to better explain the differences, advantages and inconvenients, then write a tutorial.}}<br />
<br />
== Secrets ==<br />
<br />
The server's private key needs to be configured in {{ic|/etc/ipsec.secrets}}, like the following example:<br />
<br />
{{hc|/etc/ipsec.secrets|<br />
# RSA private key for this host<br />
: RSA vpnHostKey.pem<br />
}}<br />
<br />
Whenever you edit {{ic|/etc/ipsec.secrets}} while strongSwan is running, you must<br />
reload the file:<br />
<br />
$ ipsec rereadsecrets<br />
<br />
== Networking ==<br />
<br />
You’re almost done setting up your server. There are a few things left to make<br />
your VPN server properly route the VPN tunnel:<br />
<br />
{{hc|/etc/sysctl.d/10-net-forward.conf|<nowiki><br />
# VPN<br />
net.ipv4.ip_forward = 1<br />
net.ipv4.conf.all.accept_redirects = 0<br />
net.ipv4.conf.all.send_redirects = 0<br />
</nowiki>}}<br />
<br />
The VPN configuration above automatically assigns an IP address to the client<br />
using DHCP, so you need to have a working DHCP server. If the server is running<br />
on the same host as strongSwan, you may need to edit<br />
{{ic|/etc/strongswan.d/charon/dhcp.conf}} like this:<br />
<br />
{{hc|/etc/strongswan.d/charon/dhcp.conf|<nowiki>dhcp {<br />
force_server_address = yes<br />
server = 192.168.0.255<br />
}<br />
</nowiki>}}<br />
<br />
You may also need to allow the following protocols in your firewall:<br />
<br />
* ESP (Encrypted Secure Payload): Standard IPSec traffic<br />
* UDP 4500: IPSec traffic in "NAT Traversal" mode<br />
* UDP 500: Key exchanges (IKE)<br />
<br />
== Starting ==<br />
<br />
{{Out of date|The systemd unit file name was changed in version 5.8.0.|section=Starting the service: replace legacy with new starter?}}<br />
<br />
Finally, you can [[start]] and [[enable]] {{ic|strongswan-starter.service}}.<br />
<br />
=== Running Strongswan in a Container ===<br />
For running {{ic|strongswan}} in a container like [[systemd-nspawn]] you need the following service file:<br />
<br />
{{hc|/etc/systemd/system/systemd-nspawn@.service.d/override.conf}|<nowiki><br />
[Service]<br />
ExecStart=<br />
ExecStart=/usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --settings=override --machine=%I --capability=CAP_NET_ADMIN --network-veth <br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
{{Expansion|Need to explain at least ip xfrm and common issues}}<br />
<br />
=== Routing issues ===<br />
<br />
If you are having troubles with routing traffic from client (road warrior) to the remote network, try disabling the {{ic|bypass-lan}} plugin on the server. This plugin is enabled by default in the official Arch package since version 5.6.0. See the associated [https://wiki.strongswan.org/issues/2462 issue] in strongswan bugtracker.<br />
<br />
{{hc|/etc/strongswan.d/charon/bypass-lan.conf|2=<br />
# Whether to load the plugin. Can also be an integer to increase the<br />
# priority of this plugin.<br />
load = no<br />
}}<br />
<br />
=== SSL Handshake Timeouts ===<br />
<br />
Some users have had intermittent SSL handshake timeouts, such as:<br />
<br />
* {{ic|<nowiki>curl -v https://example.com</nowiki>}} getting stuck at "TLSv1.3 (OUT), TLS handshake, Client hello (1):"<br />
* Firefox stalling loading a page, showing "Performing a TLS handshake to www.example.com"<br />
<br />
Some users have fixed (or worked around?) this problem by decreasing their network interface mtu to be in the 1422-1438 range, even if they don't need to do so without a VPN or when using OpenVPN. [https://bbs.archlinux.org/viewtopic.php?id=244606] [https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#MTUMSS-issues]<br />
<br />
Lowering mtu could potentially cause other problems, so your mileage may vary. This fix/workaround will likely somewhat decrease internet and internal network performance. (But, SSL handshakes will stop stalling.) If you're using jumbo frames, this may significantly decrease internal network performance.<br />
<br />
Check your interface's mtu: (The one being used to connect to the VPN)<br />
<br />
$ ip link<br />
<br />
Consider this default (probably 1500) bad.<br />
<br />
You can efficiently try to find a mtu that prevents an SSL timeout by repeating this process, perhaps starting with a really low '''''trial-mtu''''' like 1300, or lower if that still fails: ('''''interface''''' is the name shown above by {{ic|ip link}}, not a full path like {{ic|/dev/device}})<br />
<br />
# ip link set dev '''''interface''''' mtu '''''trial-mtu'''''<br />
$ while(<nowiki>curl -v https://example.com</nowiki>); do<br />
> sleep 2<br />
> done<br />
<br />
If it succeeds enough times for you to be confident an intermittent failure should have happened, consider this mtu as good, and hit {{ic|CTRL+C}}. Re-run the above commands with a '''''trial-mtu''''' halfway between this one and your closest known bad mtu.<br />
<br />
If it gets stuck on a TLS handshake, consider this as bad, and hit {{ic|CTRL+C}}. Re-run the above with halfway between this one and your closest known good mtu.<br />
<br />
=== Connection established but no traffic ===<br />
In certain setups, like KDE, you might get a established connection using {{ic|ipsec up}} but you can't reach any outside machine. This could be due to the {{Pkg|openresolv}} package not being installed. It's an optional dependency, but it might be required for your situation.<br />
<br />
== See also ==<br />
<br />
* [https://www.zeitgeist.se/2013/11/22/strongswan-howto-create-your-own-vpn/ strongSwan 5: How to create your own VPN] — The source used to write the initial revision of this article, with permission from the original author.<br />
* [https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-16-04 How to Set Up an IKEv2 VPN Server with StrongSwan on Ubuntu 16.04]</div>Canhahttps://wiki.archlinux.org/index.php?title=KDE&diff=596657KDE2020-02-02T16:19:22Z<p>Canha: Putting this back.</p>
<hr />
<div>[[Category:KDE]]<br />
[[ar:KDE]]<br />
[[cs:KDE]]<br />
[[de:Plasma]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[pt:KDE]]<br />
[[ru:KDE]]<br />
[[zh-hans:KDE]]<br />
[[zh-hant:KDE]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|Qt}}<br />
{{Related|SDDM}}<br />
{{Related|Dolphin}}<br />
{{Related|KDE Wallet}}<br />
{{Related|KDevelop}}<br />
{{Related|Trinity}}<br />
{{Related|Uniform Look for Qt and GTK Applications}}<br />
{{Related articles end}}<br />
<br />
KDE is a software project currently comprising a [[desktop environment]] known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained [https://userbase.kde.org/ UserBase wiki]. Detailed information about most KDE applications can be found there.<br />
<br />
== Installation ==<br />
<br />
=== Plasma ===<br />
<br />
Before installing Plasma, make sure you have a working [[Xorg]] installation on your system.<br />
<br />
[[Install]] the {{Pkg|plasma-meta}} meta-package or the {{Grp|plasma}} group. For differences between {{Pkg|plasma-meta}} and {{Grp|plasma}} reference [[Package group]]. Alternatively, for a more minimal Plasma installation, install the {{Pkg|plasma-desktop}} package.<br />
<br />
To enable support for [[Wayland]] in Plasma, also install the {{Pkg|plasma-wayland-session}} package.<br />
<br />
=== KDE applications ===<br />
<br />
To install the full set of KDE Applications, install the {{Grp|kde-applications}} group or the {{Pkg|kde-applications-meta}} meta-package. Note that this will only install applications, it will not install any version of Plasma.<br />
<br />
=== Unstable releases ===<br />
<br />
See [[Official repositories#kde-unstable]]<br />
<br />
== Starting Plasma ==<br />
{{Note|Although it is possible to launch Plasma under [[Wayland]], there are some missing features and known problems. See [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] for a list of issues and the [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] for the current state of development. Use [[Xorg]] for the most complete and stable experience.}}<br />
<br />
Plasma can be started either using a [[display manager]], or from the console.<br />
<br />
=== Using a display manager ===<br />
<br />
* Select ''Plasma'' to launch a new session in [[Xorg]].<br />
* [[Install]] {{Pkg|plasma-wayland-session}} and select ''Plasma (Wayland)'' to launch a new session in [[Wayland]].<br />
<br />
=== From the console ===<br />
<br />
* To start Plasma with [[xinit|xinit/startx]], append {{ic|exec startplasma-x11}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]].<br />
* To start a Plasma on Wayland session from a console, run {{ic|1=XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland}}.[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]<br />
<br />
== Configuration ==<br />
<br />
Most settings for KDE applications are stored in {{ic|~/.config/}}. However, configuring KDE is primarily done through the '''System Settings''' application. It can be started from a terminal by executing {{ic|systemsettings5}}.<br />
<br />
=== Personalization ===<br />
<br />
==== Plasma desktop ====<br />
<br />
===== Themes =====<br />
<br />
[https://store.kde.org/browse/cat/104/ Plasma themes] define the look of panels and plasmoids. For easy system-wide installation, some themes are available in both the official repositories and the [https://aur.archlinux.org/packages.php?K=plasma+theme AUR].<br />
<br />
Plasma themes can also be installed through ''System Settings > Global Theme > Get New Global Themes...''.<br />
<br />
The [https://store.kde.org/ KDE-Store] offers more Plasma customization's, like [[SDDM]] themes and splash-screens.<br />
<br />
====== Qt and GTK Applications Appearance ======<br />
<br />
{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}<br />
<br />
; Qt4<br />
Breeze is not directly available for Qt4 since it cannot be built without KDE 4 packages, which have been dropped from the extra repository in August 2018 ({{Bug|59784}}). However you can install {{Pkg|breeze-gtk}} and pick GTK as GUI Style by running {{ic|qtconfig-qt4}}.<br />
<br />
; GTK<br />
<br />
The recommended theme for a pleasant appearance in GTK applications is {{Pkg|breeze-gtk}}, a GTK theme designed to mimic the appearance of Plasma's Breeze theme.<br />
Install {{Pkg|kde-gtk-config}} (part of the {{grp|plasma}} group) and select {{ic|Breeze}} or {{ic|Breeze-Dark}} as the GTK2/GTK3 theme in ''System Settings > Application Style > GNOME/GTK Application Style''.<br />
<br />
In some themes, tooltips in GTK applications have white text on white backgrounds making it difficult to read. To change the colors in GTK2 applications, find the section for tooltips in the {{ic|.gtkrc-2.0}} file and change it. For GTK3 application two files need to be changed, {{ic|gtk.css}} and {{ic|settings.ini}}.<br />
<br />
Some GTK2 programs like {{AUR|vuescan-bin}} still look hardly usable due to invisible checkboxes with the Breeze or Adwaita skin in a Plasma session. To workaround this, install and select e.g. the Numix-Frost-Light skin of the {{AUR|numix-frost-themes}} under ''System Settings'' > ''Application Style'' > ''GNOME/GTK Application Style'' > ''GTK2 Theme:''. Numix-Frost-Light looks similar to Breeze.<br />
<br />
===== Faces =====<br />
<br />
Plasma and [[SDDM]] will both use a PNG file found at {{ic|~/.face.icon}} as a user's avatar. To configure with a graphical interface, you can use ''System Settings > Accounts Details > User Manager'', which may first need to be [[install]]ed (see the {{Pkg|user-manager}} package). The default icon can be found in {{ic|/usr/share/sddm/faces/}}.<br />
<br />
===== Widgets =====<br />
<br />
Plasmoids are little scripted (plasmoid scripts) or coded (plasmoid binaries) KDE applications designed to enhance the functionality of your desktop.<br />
<br />
The easiest way to install plasmoid scripts is by right-clicking onto a panel or the desktop and choosing ''Add Widgets > Get New Widgets... > Download New Plasma Widgets''. This will present a nice frontend for https://store.kde.org/ that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Many Plasmoid binaries are available from the [https://aur.archlinux.org/packages.php?K=plasmoid AUR].<br />
<br />
===== Sound applet in the system tray =====<br />
<br />
[[Install]] {{Pkg|plasma-pa}} or {{Pkg|kmix}} (start Kmix from the Application Launcher). {{Pkg|plasma-pa}} is now installed by default with {{Grp|plasma}}, no further configuration needed.<br />
<br />
{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.config/kmixrc}}.}}<br />
<br />
===== Disable panel shadow =====<br />
<br />
As the Plasma panel is on top of other windows, its shadow is drawn over them. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] To disable this behaviour without impacting other shadows, [[install]] {{Pkg|xorg-xprop}} and run:<br />
<br />
$ xprop -remove _KDE_NET_WM_SHADOW<br />
<br />
then select the panel with the plus-sized cursor. [https://forum.kde.org/viewtopic.php?f=285&t=121592] For automation, install {{Pkg|xorg-xwininfo}} and create the following script:<br />
<br />
{{hc|/usr/local/bin/kde-no-shadow|<nowiki><br />
#!/bin/bash<br />
for WID in $(xwininfo -root -tree | sed '/"Plasma": ("plasmashell" "plasmashell")/!d; s/^ *\([^ ]*\) .*/\1/g'); do<br />
xprop -id $WID -remove _KDE_NET_WM_SHADOW<br />
done<br />
</nowiki>}}<br />
<br />
Set execution permissions for the script:<br />
<br />
# chmod 755 /usr/local/bin/kde-no-shadow<br />
<br />
The script can be run on login with ''Add Script'' in ''Autostart'':<br />
<br />
$ kcmshell5 autostart<br />
<br />
==== Window decorations ====<br />
<br />
[https://store.kde.org/browse/cat/114/ Window decorations] can be changed in ''System Settings > Application Style > Window Decorations''.<br />
<br />
There you can also directly download and install more themes with one click, and some are available in the [https://aur.archlinux.org/packages.php?K=kde+window+decoration AUR].<br />
<br />
==== Icon themes ====<br />
<br />
Icon themes can be installed and changed on ''System Settings > Icons''.<br />
<br />
{{Note|Although all modern Linux desktops share the same icon theme format, desktops like [[GNOME]] use fewer icons (esp. in menus and toolbars). Themes developed for such desktops usually lack icons required by Plasma and KDE apps. It is recommended to install Plasma compatible icon themes instead.}}<br />
<br />
{{Tip|Since some icon themes do not inherit from the default icon theme, some icons may be missing. <br />
To inherit from the Breeze, add {{ic|breeze}} to the {{ic|1=Inherits=}} array in {{ic|/usr/share/icon/''theme-name''/index.theme}}, for example: {{ic|1=Inherits=breeze,hicolor}}. You need to reapply this patch after every update to the icon theme, consider using [[Pacman hooks]] to automate the process.}}<br />
<br />
==== Space efficiency ====<br />
<br />
The Plasma Netbook shell has been dropped from Plasma 5, see the following [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 KDE forum post]. However, you can achieve something similar by editing the file {{ic|~/.config/kwinrc}} adding {{ic|1=BorderlessMaximizedWindows=true}} in the {{ic|[Windows]}} section.<br />
<br />
==== Thumbnail generation ====<br />
<br />
To allow thumbnail generation for media or document files on the desktop and in Dolphin, install {{Pkg|kdegraphics-thumbnailers}} and {{Pkg|ffmpegthumbs}}.<br />
<br />
Then enable the thumbnail categories for the desktop via ''right click'' on the ''desktop background'' > ''Configure Desktop'' > ''Icons'' > ''Configure Preview Plugins...''.<br />
<br />
In ''Dolphin'', navigate to ''Control'' > ''Configure Dolphin...'' > ''General'' > ''Previews''.<br />
<br />
=== Printing ===<br />
<br />
{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}<br />
<br />
You can also configure printers in ''System Settings > Printers''. To use this method, you must first install {{Pkg|print-manager}} and {{Pkg|cups}}. See [[CUPS#Configuration]].<br />
<br />
=== Samba/Windows support ===<br />
<br />
If you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).<br />
<br />
The Dolphin share functionality requires the package {{Pkg|kdenetwork-filesharing}} and usershares, which the stock {{ic|smb.conf}} does not have enabled. Instructions to add them are in [[Samba#Enable Usershares]], after which sharing in Dolphin should work out of the box after restarting Samba.<br />
<br />
{{Tip|Use {{ic|*}} (asterisk) for both username and password when accessing a Windows share without authentication in Dolphin's prompt.}}<br />
<br />
Unlike GTK file browsers which utilize GVfs also for the launched program, opening files from Samba shares in Dolphin via KIO makes Plasma copy the whole file to the local system first with most programs (VLC is an exception).<br />
To workaround this, you can use a GTK based file browser like {{Pkg|thunar}} with {{Pkg|gvfs}} and {{Pkg|gvfs-smb}} (and {{Pkg|gnome-keyring}} for saving login credentials) to access SMB shares in a more able way.<br />
<br />
Another possibility is to [[mount]] a Samba share via {{Pkg|cifs-utils}} to make it look to Plasma like if the SMB share was just a normal local folder and thus can be accessed normally.<br />
See [[Samba#Manual mounting]] and [[Samba#Automatic mounting]].<br />
<br />
An GUI solution is available with {{AUR|samba-mounter-git}}, which offers basically the same functionality via an easy to use option located at ''System Settings'' > ''Network Drivers''. However, it might break with new KDE Plasma versions.<br />
<br />
=== KDE Desktop activities ===<br />
<br />
[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] are special workspaces where you can select specific settings for each activity that apply only when you are using said activity.<br />
<br />
=== Power management ===<br />
<br />
[[Install]] {{Pkg|powerdevil}} for an integrated Plasma power managing service. This service offers additional power saving features, monitor brightness control (if supported) and battery reporting including peripheral devices.<br />
<br />
An alternative package without [[NetworkManager]] and [[Bluez]] dependencies is provided by {{AUR|powerdevil-light}}.<br />
<br />
{{Accuracy|Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid&#61;1649022#p1649022]}}<br />
<br />
{{Note|Powerdevil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}<br />
<br />
=== Autostart ===<br />
<br />
Plasma can autostart applications and run scripts on startup and shutdown. To autostart an application, navigate to ''System Settings > Startup and Shutdown > Autostart'' and add the program or shell script of your choice. For applications, a ''.desktop'' file will be created, for shell scripts, a symlink will be created.<br />
<br />
{{Note|<br />
* Programs can be autostarted on login only, whilst shell scripts can also be run on shutdown or even before Plasma itself starts.<br />
* Shell scripts will only be run if they are marked [[executable]].<br />
}}<br />
<br />
* Place [[Desktop entries]] (i.e. ''.desktop'' files) in the appropriate [[XDG Autostart]] directory.<br />
<br />
* Place or symlink shell scripts in one of the following directories:<br />
<br />
:; {{ic|~/.config/plasma-workspace/env/}}: for executing scripts at login before launching Plasma.<br />
:; {{ic|~/.config/autostart-scripts/}}: for executing scripts at login.<br />
:; {{ic|~/.config/plasma-workspace/shutdown/}}: for executing scripts on shutdown.<br />
<br />
=== Phonon ===<br />
<br />
From [[Wikipedia:Phonon (software)|Wikipedia]]:<br />
<br />
:Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.<br />
<br />
:Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime.<br />
<br />
Phonon is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio apps) and video (e.g., the [[Dolphin]] video thumbnails).<br />
<br />
==== Which backend should I choose? ====<br />
<br />
You can choose between backends based on [[GStreamer]] and [[VLC]] – each available in versions for Qt4 applications and Qt5 applications ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} – {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}).<br />
<br />
[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM Upstream prefers VLC] but prominent Linux distributions (Kubuntu and Fedora-KDE for example) prefer GStreamer because that allows them to easily leave out patented MPEG codecs from the default installation. Both backends have a slightly different [https://community.kde.org/Phonon/FeatureMatrix features set]. The Gstreamer backend has some optional codec dependency, install them as needed:<br />
<br />
* {{Pkg|gst-libav}} — Libav codecs.<br />
* {{Pkg|gst-plugins-good}} — PulseAudio support and additional codecs.<br />
* {{Pkg|gst-plugins-ugly}} — additional codecs.<br />
* {{Pkg|gst-plugins-bad}} — additional codecs.<br />
<br />
In the past other backends were developed as well but are no longer maintained and their AUR packages have been deleted.<br />
<br />
{{Note|1=<br><br />
* Multiple backends can be installed at once and prioritized via the ''phononsettings'' application.<br />
* According to the [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 KDE forums], the VLC backend lacks support for [[wikipedia:ReplayGain|ReplayGain]].<br />
* If using the VLC backend, you may experience crashes every time Plasma wants to send you an audible warning and in quite a number of other cases as well [https://forum.kde.org/viewtopic.php?f=289&t=135956]. A possible fix is to rebuild the VLC plugins cache:<br />
{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}<br />
}}<br />
<br />
== Applications ==<br />
<br />
The KDE project provides a suite of applications that integrate with the Plasma desktop. See the {{Grp|kde-applications}} group for a full listing of the available applications. Also see [[:Category:KDE]] for related KDE application pages.<br />
<br />
Aside from the programs provided in KDE Applications, there are many other applications available that can complement the Plasma desktop. Some of these are discussed below.<br />
<br />
=== System administration ===<br />
<br />
==== Terminate Xorg server through KDE System Settings ====<br />
<br />
Navigate to the submenu ''System Settings > Input Devices > Keyboard > Advanced (tab) > "Key Sequence to kill the X server"'' and ensure that the checkbox is ticked.<br />
<br />
==== KCM ====<br />
<br />
KCM stands for '''KC'''onfig '''M'''odule. KCMs can help you configure your system by providing interfaces in System Settings, or through the command line with ''kcmshell5''.<br />
<br />
* {{App|sddm-kcm|KDE Config Module for [[SDDM]].|https://cgit.kde.org/sddm-kcm.git|{{Pkg|sddm-kcm}}}}<br />
* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}<br />
* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://cgit.kde.org/polkit-kde-kcmodules-1.git|{{AUR|kcm-polkit-kde-git}}}}<br />
* {{App|wacom tablet|KDE GUI for the Wacom Linux Drivers.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}<br />
* {{App|Kcmsystemd|systemd control module for KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}<br />
<br />
More KCMs can be found at [https://www.linux-apps.com/search?projectSearchText=KCM linux-apps.com].<br />
<br />
=== Desktop search ===<br />
<br />
KDE implements desktop search with a software called [[Baloo]], a file indexing and searching solution.<br />
<br />
=== Web browsers ===<br />
<br />
The following web browsers can integrate with Plasma:<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Part of the KDE project, supports two rendering engines – KHTML and the [[Chromium]]-based Qt WebEngine.|https://konqueror.org/|{{Pkg|konqueror}}}}<br />
* {{App|[[Wikipedia:Falkon|Falkon]]|A Qt web browser with Plasma integration features, previously known as Qupzilla. It uses Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}<br />
* {{App|[[Chromium]]|Chromium and its proprietary variant Google Chrome have limited Plasma integration. [[KDE Wallet#KDE Wallet for Chrome and Chromium|They can use KWallet]] and KDE Open/Save windows.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Firefox]]|Firefox can be configured to better integrate with Plasma. See [[Firefox#KDE/GNOME integration|Firefox KDE integration]] for details.|https://mozilla.org/firefox|{{Pkg|firefox}}}}<br />
<br />
{{Tip|Starting from Plasma 5.13, one can integrate [[Firefox]] or [[Chrome]] with Plasma: providing media playback control from the Plasma tray, download notifications and find open tabs in KRunner. [[Install]] {{pkg|plasma-browser-integration}} and the corresponding browser add-on. Chrome/Chromium support should already be included, for Firefox add-on see [[Firefox#KDE/GNOME integration]].}}<br />
<br />
=== PIM ===<br />
<br />
KDE offers its own stack for [[Wikipedia:Personal information management|personal information management]] (PIM). This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the {{Grp|kdepim}} package group or the {{Pkg|kdepim-meta}} meta package.<br />
<br />
==== Akonadi ====<br />
<br />
Akonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on. Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).<br />
<br />
Install {{Pkg|akonadi}}. For additional addons, install {{Pkg|kdepim-addons}}.<br />
<br />
{{Note|If you wish to use a database engine other than [[MariaDB]], then when installing the {{Pkg|akonadi}} package, use the following command to skip installing the {{Pkg|mariadb}} dependencies:<br />
<br />
# pacman -S akonadi --assume-installed mariadb<br />
<br />
See also {{Bug|32878}}.<br />
}}<br />
<br />
===== MySQL =====<br />
<br />
By default Akonadi will use {{ic|/usr/bin/mysqld}} ([[MariaDB]] by default, see [[MySQL]] for alternative providers) to run a managed MySQL instance with the database stored in {{ic|~/.local/share/akonadi/db_data/}}.<br />
<br />
====== System-wide MySQL instance ======<br />
<br />
Akonadi supports using the system-wide [[MySQL]] for its database.[https://techbase.kde.org/KDE_PIM/Akonadi#Can_Akonadi_use_a_normal_MySQL_server_running_on_my_system.3F]<br />
<br />
{{Expansion|Add instructions.}}<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QMYSQL<br />
<br />
[QMYSQL]<br />
Host=<br />
Name=akonadi_''username''<br />
Options="UNIX_SOCKET=/run/mysqld/mysqld.sock"<br />
StartServer=false<br />
}}<br />
<br />
===== PostgreSQL =====<br />
<br />
Akonadi supports either using the existing system-wide [[PostgreSQL]] instance, i.e. {{ic|postgresql.service}}, or running a PostgreSQL instance with user privileges and the database in {{ic|~/.local/share/akonadi/db_data/}}.<br />
<br />
====== Per-user PostgreSQL instance ======<br />
<br />
[[Install]] {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}.<br />
<br />
Edit Akonadi configuration file so that it has the following contents:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QPSQL<br />
}}<br />
<br />
{{Note|<br />
* When Akonadi starts, it will create the {{ic|[QPSQL]}} section and set the appropriate variables in it.<br />
* The database will be stored in {{ic|~/.local/share/akonadi/db_data/}}.<br />
}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
{{Note|<br />
* Starting with {{Pkg|akonadi}} 19.08.0-1 the PostgreSQL database cluster in {{ic|~/.local/share/akonadi/db_data/}} will get automatically upgraded when a major PostgreSQL version upgrade is detected.<br />
* For previous {{Pkg|akonadi}} versions major PostgreSQL version upgrades will require a manual database upgrade. Follow the [https://userbase.kde.org/Akonadi/Postgres_update update instructions on KDE UserBase Wiki]. Make sure to adjust the paths to PostgreSQL binaries to those used by {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}, see [[PostgreSQL#Upgrading PostgreSQL]].<br />
}}<br />
<br />
====== System-wide PostgreSQL instance ======<br />
<br />
This requires an already configured and running [[PostgreSQL]].<br />
<br />
Create a PostgreSQL user account for your user:<br />
<br />
[postgres]$ createuser ''username''<br />
<br />
Create a database for Akonadi:<br />
<br />
[postgres]$ createdb -O ''username'' --locale=en_US.UTF-8 -T template0 akonadi-''username''<br />
<br />
Configure Akonadi to use the system-wide PostgreSQL:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QPSQL<br />
<br />
[QPSQL]<br />
Host=/run/postgresql<br />
Name=akonadi-''username''<br />
StartServer=false<br />
}}<br />
<br />
{{Note|Custom port, username and password can be specified with options {{ic|1=Port=}}, {{ic|1=User=}}, {{ic|1=Password=}} in the {{ic|[QPSQL]}} section.}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
===== SQLite =====<br />
<br />
To use [[SQLite]] edit Akonadi configuration file to match the configuration below:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QSQLITE3<br />
}}<br />
<br />
{{Note|<br />
* When Akonadi starts, it will create the {{ic|[QSQLITE3]}} section and set the appropriate variables in it.<br />
* The database will be stored as {{ic|~/.local/share/akonadi/akonadi.db}}.<br />
}}<br />
<br />
===== Disabling Akonadi =====<br />
<br />
See this [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase].<br />
<br />
=== KDE Telepathy ===<br />
<br />
[https://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.<br />
<br />
To install all Telepathy protocols, install the {{Grp|telepathy}} group.<br />
To use the KDE Telepathy client, install the {{Pkg|telepathy-kde-meta}} package that includes all the packages contained in the {{Grp|telepathy-kde}} group.<br />
<br />
==== Use Telegram with KDE Telepathy ====<br />
<br />
[[Telegram]] protocol is available using {{pkg|telepathy-haze}}, installing {{aur|telegram-purple}} or {{aur|telegram-purple-git}} and {{aur|telepathy-morse-git}}. The username is the Telegram account telephone number (complete with the national prefix {{ic|+''xx''}}, e.g. {{ic|+49}} for Germany).<br />
<br />
The configuration through the GUI may be tricky: if the phone number is not accepted when configuring a new account in the KDE Telepathy client (with an error message complaining about an invalid parameter which prevents the account creation), insert it between single quotes and then remove the quotes manually from the configuration file ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) after the account creation (if the quotes are not removed after, an authentication error should rise).<br />
<br />
{{Note|The configuration file should be edited manually when KDE Telepathy is not running, e.g. when there is no KDE desktop session active, otherwise manual changes may be overwritten by the software.}}<br />
<br />
=== KDE Connect ===<br />
<br />
[https://community.kde.org/KDEConnect KDE Connect] provides several features to connect your [[Android]] phone with your Linux desktop:<br />
<br />
* Share files and URLs to/from KDE from/to any app, without wires.<br />
* Touchpad emulation: Use your phone screen as your computer's touchpad.<br />
* Notifications sync (4.3+): Read your Android notifications from the desktop.<br />
* Shared clipboard: copy and paste between your phone and your computer.<br />
* Multimedia remote control: Use your phone as a remote for Linux media players.<br />
* WiFi connection: no usb wire or bluetooth needed.<br />
* RSA Encryption: your information is safe.<br />
<br />
You will need to install KDE Connect both on your computer and on your Android. For PC side, [[install]] {{Pkg|kdeconnect}} package. For Android side, install KDE Connect from [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] or from [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid]. If you want to browse your phone's filesystem, you need to [[install]] {{Pkg|sshfs}} as well and configure filesystem exposes in your Android app.<br />
<br />
It is possible to use KDE Connect even if you do not use the Plasma desktop. For desktop environments that use AppIndicators, such as Unity, install {{AUR|indicator-kdeconnect}} package as well. For GNOME users, better integration can be achieved by installing {{AUR|gnome-shell-extension-gsconnect}} instead of {{Pkg|kdeconnect}}. To start the KDE Connect daemon manually, execute {{ic|/usr/lib/kdeconnectd}}.<br />
<br />
If you use a [[firewall]], you need to open UDP and TCP ports {{ic|1714}} through {{ic|1764}}. See https://community.kde.org/KDEConnect#Troubleshooting.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Use a different window manager ===<br />
<br />
The component chooser settings in Plasma does not allow changing the window manager anymore. [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade]<br />
In order to change the window manager used you need to set the {{ic|KDEWM}} [[environment variable]] before KDE startup. [https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE] To do that you can create a script called {{ic|set_window_manager.sh}} in {{ic|~/.config/plasma-workspace/env/}} and export the {{ic|KDEWM}} variable there. For example to use the i3 window manager :<br />
<br />
{{hc|~/.config/plasma-workspace/env/set_window_manager.sh|2=<br />
export KDEWM=/usr/bin/i3<br />
}}<br />
<br />
And then make it executable :<br />
<br />
{{bc|$ chmod +x ~/.config/plasma-workspace/env/set_window_manager.sh}}<br />
<br />
{{Note|When using i3 window manager with Plasma, it may be necessary to manually set dialogs to open in floating mode in order for them to correctly appear. For more information, see [[I3#Correct handling of floating dialogs]].}}<br />
<br />
==== KDE/Openbox session ====<br />
<br />
The {{Pkg|openbox}} package provides a session for using KDE with [[Openbox]]. To make use of this session, select ''KDE/Openbox'' from the [[display manager]] menu.<br />
<br />
For those starting the session manually, add the following line to your [[xinit]] configuration:<br />
<br />
{{hc|~/.xinitrc|<br />
exec openbox-kde-session<br />
}}<br />
<br />
==== Re-enabling compositing effects ====<br />
<br />
When replacing Kwin with a window manager which does not provide a Compositor (such as Openbox), any desktop compositing effects e.g. transparency will be lost. In this case, install and run a separate Composite manager to provide the effects such as [[Xcompmgr]] or [[Compton]].<br />
<br />
=== Configuring monitor resolution / multiple monitors ===<br />
<br />
To enable display resolution management and multiple monitors in Plasma, install {{Pkg|kscreen}}. This provides additional options to ''System Settings > Display and Monitor''.<br />
<br />
=== KWin-lowlatency ===<br />
<br />
[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] is a attempt to reduce latency and stuttering in the popular KWin compositor and is available as {{AUR|kwin-lowlatency}}.<br />
<br />
=== Configuring ICC profiles ===<br />
<br />
To enable [[ICC profiles]] in Plasma, [[install]] {{Pkg|colord-kde}}. This provides additional options to ''System Settings > Color Corrections''.<br />
<br />
ICC profiles can be imported using ''Add Profile''.<br />
<br />
=== Disable opening application launcher with Super key (Windows key) ===<br />
<br />
To disable this feature you currently can run the following command:<br />
<br />
$ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta ""<br />
<br />
=== Disable bookmarks showing in application menu ===<br />
<br />
With Plasma Browser integration installed, KDE will show bookmarks in the application launcher.<br />
<br />
To disable this feature you currently can run the following commands:<br />
<br />
$ mkdir ~/.local/share/kservices5<br />
$ sed 's/EnabledByDefault=true$/EnabledByDefault=false/' /usr/share/kservices5/plasma-runner-bookmarks.desktop > ~/.local/share/kservices5/plasma-runner-bookmarks.desktop<br />
<br />
== Troubleshooting ==<br />
<br />
=== Fonts ===<br />
<br />
==== Fonts in a Plasma session look poor ====<br />
<br />
Try installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.<br />
<br />
After the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Fonts''. If you are using {{Pkg|qt5ct}}, the settings in Qt5 Configuration Tool may override the font settings in System Settings.<br />
<br />
If you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Fonts'' System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).<br />
<br />
There is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.<br />
<br />
==== Fonts are huge or seem disproportional ====<br />
<br />
Try to force font DPI to {{ic|'''96'''}} in ''System Settings > Fonts''.<br />
<br />
If that does not work, try setting the DPI directly in your Xorg configuration as documented in [[Xorg#Setting DPI manually]].<br />
<br />
=== Configuration related ===<br />
<br />
Many problems in KDE are related to its configuration.<br />
<br />
==== Plasma desktop behaves strangely ====<br />
<br />
Plasma problems are usually caused by unstable ''Plasma widgets'' (colloquially called ''plasmoids'') or ''Plasma themes''. First, find which was the last widget or theme you had installed and disable or uninstall it.<br />
<br />
So, if your desktop suddenly exhibits "locking up", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report on the [https://bugs.kde.org/ KDE bug tracker] '''only if it is an official widget'''. If it is not, it is recommended to find the entry on the [https://store.kde.org/ KDE Store] and inform the developer of that widget about the problem (detailing steps to reproduce, etc.).<br />
<br />
If you cannot find the problem, but you do not want ''all'' the settings to be lost, navigate to {{ic|~/.config/}} and run the following command:<br />
<br />
$ for j in plasma*; do mv -- "$j" "${j%}.bak"; done<br />
<br />
This command will rename '''all''' Plasma related configuration files to ''*.bak'' (e.g. {{ic|plasmarc.bak}}) of your user and when you will relogin into Plasma, you will have the default settings back. To undo that action, remove the ''.bak'' file extension. If you already have ''*.bak'' files, rename, move, or delete them first. It is highly recommended that you create regular backups anyway. See [[Synchronization and backup programs]] for a list of possible solutions.<br />
<br />
==== Clean cache to resolve upgrade problems ====<br />
<br />
The [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes, after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings, Ark being unable to extract archives or Amarok not recognizing any of your music. This solution can also resolve problems with KDE and Qt applications looking bad after an update.<br />
<br />
Rebuild the cache using the following commands:<br />
<br />
$ rm ~/.config/Trolltech.conf<br />
$ kbuildsycoca5 --noincremental<br />
<br />
Optionally, empty the {{ic|~/.cache/}} folder contents, however, this will also clear the cache of other applications:<br />
<br />
$ rm -rf ~/.cache/*<br />
<br />
==== Volume control, notifications or multimedia keys do not work ====<br />
<br />
Hiding certain items in the System Tray settings (e.g. Audio Volume, Media Player or Notifications) also disables related features. Hiding the ''Audio Volume'' disables volume control keys, ''Media Player'' disables multimedia keys (rewind, stop, pause) and hiding ''Notifications'' disables showing notifications.<br />
<br />
==== Login Screen KCM does not sync cursor settings to SDDM ====<br />
<br />
The Login Screen KCM reads your cursor settings from {{ic|~/.config/kcminputrc}}, without this file no settings are synced. The easiest way to generate this file is to change your cursor theme in ''System Settings > Cursors'', then change it back to your preferred cursor theme.<br />
<br />
=== Graphical problems ===<br />
<br />
Make sure you have the proper driver for your GPU installed. See [[Xorg#Driver installation]] for more information. If you have an older card, it might help to [[#Disable desktop effects manually or automatically for defined applications]] or [[#Disable compositing]].<br />
<br />
==== Getting current state of KWin for support and debug purposes ====<br />
<br />
This command prints out a summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].<br />
<br />
$ qdbus org.kde.KWin /KWin supportInformation<br />
<br />
==== Disable desktop effects manually or automatically for defined applications ====<br />
<br />
Plasma has desktop effects enabled by default and e.g. not every game will disable them automatically. You can disable desktop effects in ''System Settings > Desktop Behavior > Desktop Effects'' and you can toggle desktop effects with {{ic|Alt+Shift+F12}}. <br />
<br />
Additionally, you can create custom KWin rules to automatically disable/enable compositing when a certain application/window starts under ''System Settings > Window Management > Window Rules''.<br />
<br />
==== Enable transparency ====<br />
<br />
If you use a transparent background without enabling the compositor, you will get the message:<br />
<br />
This color scheme uses a transparent background which does not appear to be supported on your desktop<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', check ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Disable compositing ====<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', uncheck ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Flickering in fullscreen when compositing is enabled ====<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', uncheck ''Allow applications to block compositing''. This may harm performance.<br />
<br />
==== Screen tearing with NVIDIA ====<br />
<br />
See [[NVIDIA/Troubleshooting#Avoid screen tearing in KDE (KWin)]].<br />
<br />
==== Plasma cursor sometimes shown incorrectly ====<br />
<br />
Create the directory {{ic|~/.icons/default}} and inside a file named {{ic|index.theme}} with the following contents:<br />
<br />
{{hc|~/.icons/default/index.theme|2=<br />
[Icon Theme]<br />
Inherits=breeze_cursors<br />
}}<br />
<br />
Execute the following command:<br />
<br />
$ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors<br />
<br />
==== Unusable screen resolution set ====<br />
<br />
Your local configuration settings for kscreen can override those set in {{ic|xorg.conf}}. Look for kscreen configuration files in {{ic|~/.local/share/kscreen/}} and check if mode is being set to a resolution that is not supported by your monitor.<br />
<br />
==== Blurry icons in System tray ====<br />
<br />
In order to add icons to tray, applications often make use of the library appindicator. If your icons are blurry, check which version of libappindicator you have installed. If you only have {{Pkg|libappindicator-gtk2}} installed, you can install {{Pkg|libappindicator-gtk3}} or {{Pkg|libappindicator-sharp}} as an attempt to get clear icons.<br />
<br />
=== Sound problems ===<br />
<br />
{{Note|First make sure you have {{Pkg|alsa-utils}} installed.}}<br />
<br />
==== No sound after suspend ====<br />
<br />
If there is no sound after suspending and if KMix does not show audio devices which should be there, restarting plasmashell and pulseaudio may help:<br />
<br />
$ killall plasmashell<br />
$ systemctl --user restart pulseaudio.service<br />
$ plasmashell<br />
<br />
Some applications may also need to be restarted in order for sound to play from them again.<br />
<br />
==== MP3 files cannot be played when using the GStreamer Phonon backend ====<br />
<br />
This can be solved by installing the GStreamer libav plugin (package {{Pkg|gst-libav}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{AUR|phonon-qt4-vlc}} or {{Pkg|phonon-qt5-vlc}}.<br />
<br />
Then, make sure the backend is preferred via ''System Settings > Multimedia > Audio and Video > Backend''.<br />
<br />
=== Power management ===<br />
<br />
==== No Suspend/Hibernate options ====<br />
<br />
If your system is able to suspend or hibernate using [[systemd]] but do not have these options shown in KDE, make sure {{Pkg|powerdevil}} is installed.<br />
<br />
=== KMail ===<br />
<br />
==== Clean Akonadi configuration to fix KMail ====<br />
<br />
See [https://docs.kde.org/trunk5/en/pim/kmail2/clean-start-after-a-failed-migration.html this] document for detail.<br />
<br />
If you want a backup, copy the following configuration directories:<br />
<br />
$ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old<br />
$ cp -a ~/.config/akonadi ~/.config/akonadi-old<br />
<br />
==== Empty IMAP inbox in KMail ====<br />
<br />
For some IMAP accounts KMail will show the inbox as a top-level container (so it will not be possible to read messages there) with all other folders of this account inside.[https://bugs.kde.org/show_bug.cgi?id=284172]. To solve this problem simply disable the server-side subscriptions in the KMail account settings.<br />
<br />
==== Authorization error for EWS account in KMail ====<br />
<br />
While setting up EWS account in KMail, you may keep getting errors about failed authorization even for valid and fully working credentials. This is likely caused by broken communication between [[KWallet]] and KMail. To workaround the issue set a passsword via qdbus:<br />
<br />
$ qdbus org.freedesktop.Akonadi.Resource.akonadi_ews_resource_0 /Settings org.kde.Akonadi.Ews.Wallet.setPassword "XXX"<br />
<br />
=== Networking ===<br />
<br />
==== Freezes when using Automount on a NFS volume ====<br />
<br />
Using [[Fstab#Automount with systemd]] on a [[NFS]] volume may cause freezes, see [https://bugs.kde.org/show_bug.cgi?id=354137 bug report upstream].<br />
<br />
=== Aggressive QXcbConnection journal logging ===<br />
<br />
See [[Qt#Disable/Change Qt journal logging behaviour]].<br />
<br />
=== KF5/Qt 5 applications do not display icons in i3/FVWM/awesome ===<br />
<br />
See [[Qt#Configuration of Qt5 apps under environments other than KDE Plasma]].<br />
<br />
=== Problems with saving credentials and persistently occurring KWallet dialogs ===<br />
<br />
It is not recommended to turn off the [[KWallet]] password saving system in the user settings as it is required to save encrypted credentials like WiFi passphrases for each user. Persistently occuring KWallet dialogs can be the consequence of turning it off.<br />
<br />
In case you find the dialogs to unlock the wallet annoying when applications want to access it, you can let the [[Display manager|display managers]] [[SDDM]] and [[LightDM]] unlock the wallet at login automatically, see [[KDE Wallet#Unlock KDE Wallet automatically on login]]. The first wallet needs to be generated by KWallet (and not user-generated) in order to be usable for system program credentials.<br />
<br />
In case you want the wallet credentials not to be opened in memory for every application, you can restrict applications from accessing it with {{Pkg|kwalletmanager}} in the KWallet settings.<br />
<br />
If you do not care for credential encryption at all, you can simply leave the password forms blank when KWallet asks for the password while creating a wallet. In this case, applications can access passwords without having to unlock the wallet first.<br />
<br />
=== Discover does not show any applications ===<br />
<br />
This can be solved by installing {{Pkg|packagekit-qt5}}.<br />
<br />
=== High CPU usage of kscreenlocker_greet with NVIDIA drivers ===<br />
<br />
As described in [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] NVIDIA OpenGL drivers and QML may not play well together with Qt 5. This may lead {{ic|kscreenlocker_greet}} to high CPU usage after unlocking the session. To work around this issue, set the {{ic|QSG_RENDERER_LOOP}} [[environment variable]] to {{ic|basic}}.<br />
<br />
Then kill previous instances of the greeter with {{ic|killall kscreenlocker_greet}}.<br />
<br />
=== OS error 22 when running Akonadi on ZFS ===<br />
<br />
If your home directory is on a [[ZFS]] pool, create a {{ic|~/.config/akonadi/mysql-local.conf}} file with the following contents:<br />
<br />
[mysqld]<br />
innodb_use_native_aio = 0<br />
<br />
See [[MariaDB#OS error 22 when running on ZFS]].<br />
<br />
=== Some programs are unable to scroll when their windows are inactive ===<br />
<br />
This is caused by the problematic way of GTK3 handling mouse scroll events. A workaround for this is to set [[environment variable]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. However, this workaround also breaks touchpad smooth scrolling and touchscreen scrolling.<br />
<br />
=== TeamViewer behaves slowly ===<br />
<br />
When using TeamViewer, it may behave slowly if you use smooth animations (such as windows minimizing). See [[#Disable compositing]] as a workaround.<br />
<br />
== See also ==<br />
<br />
* [https://www.kde.org/ KDE homepage]<br />
* [https://dot.kde.org/ KDE news]<br />
* [https://planet.kde.org/ KDE Blogs]<br />
* [https://forum.kde.org/ KDE Forums]<br />
* [https://wiki.kde.org/ KDE Wikis]<br />
* [https://bugs.kde.org/ KDE bug tracker and reporter]<br />
* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]</div>Canhahttps://wiki.archlinux.org/index.php?title=KDE&diff=596656KDE2020-02-02T16:18:21Z<p>Canha: Bug is marked as resolved upstream. In spite of that, paragraph doesn't explain what is actually freezing or how to fix it. Add back if still required with more information please.</p>
<hr />
<div>[[Category:KDE]]<br />
[[ar:KDE]]<br />
[[cs:KDE]]<br />
[[de:Plasma]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[pt:KDE]]<br />
[[ru:KDE]]<br />
[[zh-hans:KDE]]<br />
[[zh-hant:KDE]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|Qt}}<br />
{{Related|SDDM}}<br />
{{Related|Dolphin}}<br />
{{Related|KDE Wallet}}<br />
{{Related|KDevelop}}<br />
{{Related|Trinity}}<br />
{{Related|Uniform Look for Qt and GTK Applications}}<br />
{{Related articles end}}<br />
<br />
KDE is a software project currently comprising a [[desktop environment]] known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained [https://userbase.kde.org/ UserBase wiki]. Detailed information about most KDE applications can be found there.<br />
<br />
== Installation ==<br />
<br />
=== Plasma ===<br />
<br />
Before installing Plasma, make sure you have a working [[Xorg]] installation on your system.<br />
<br />
[[Install]] the {{Pkg|plasma-meta}} meta-package or the {{Grp|plasma}} group. For differences between {{Pkg|plasma-meta}} and {{Grp|plasma}} reference [[Package group]]. Alternatively, for a more minimal Plasma installation, install the {{Pkg|plasma-desktop}} package.<br />
<br />
To enable support for [[Wayland]] in Plasma, also install the {{Pkg|plasma-wayland-session}} package.<br />
<br />
=== KDE applications ===<br />
<br />
To install the full set of KDE Applications, install the {{Grp|kde-applications}} group or the {{Pkg|kde-applications-meta}} meta-package. Note that this will only install applications, it will not install any version of Plasma.<br />
<br />
=== Unstable releases ===<br />
<br />
See [[Official repositories#kde-unstable]]<br />
<br />
== Starting Plasma ==<br />
{{Note|Although it is possible to launch Plasma under [[Wayland]], there are some missing features and known problems. See [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] for a list of issues and the [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] for the current state of development. Use [[Xorg]] for the most complete and stable experience.}}<br />
<br />
Plasma can be started either using a [[display manager]], or from the console.<br />
<br />
=== Using a display manager ===<br />
<br />
* Select ''Plasma'' to launch a new session in [[Xorg]].<br />
* [[Install]] {{Pkg|plasma-wayland-session}} and select ''Plasma (Wayland)'' to launch a new session in [[Wayland]].<br />
<br />
=== From the console ===<br />
<br />
* To start Plasma with [[xinit|xinit/startx]], append {{ic|exec startplasma-x11}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]].<br />
* To start a Plasma on Wayland session from a console, run {{ic|1=XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland}}.[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]<br />
<br />
== Configuration ==<br />
<br />
Most settings for KDE applications are stored in {{ic|~/.config/}}. However, configuring KDE is primarily done through the '''System Settings''' application. It can be started from a terminal by executing {{ic|systemsettings5}}.<br />
<br />
=== Personalization ===<br />
<br />
==== Plasma desktop ====<br />
<br />
===== Themes =====<br />
<br />
[https://store.kde.org/browse/cat/104/ Plasma themes] define the look of panels and plasmoids. For easy system-wide installation, some themes are available in both the official repositories and the [https://aur.archlinux.org/packages.php?K=plasma+theme AUR].<br />
<br />
Plasma themes can also be installed through ''System Settings > Global Theme > Get New Global Themes...''.<br />
<br />
The [https://store.kde.org/ KDE-Store] offers more Plasma customization's, like [[SDDM]] themes and splash-screens.<br />
<br />
====== Qt and GTK Applications Appearance ======<br />
<br />
{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}<br />
<br />
; Qt4<br />
Breeze is not directly available for Qt4 since it cannot be built without KDE 4 packages, which have been dropped from the extra repository in August 2018 ({{Bug|59784}}). However you can install {{Pkg|breeze-gtk}} and pick GTK as GUI Style by running {{ic|qtconfig-qt4}}.<br />
<br />
; GTK<br />
<br />
The recommended theme for a pleasant appearance in GTK applications is {{Pkg|breeze-gtk}}, a GTK theme designed to mimic the appearance of Plasma's Breeze theme.<br />
Install {{Pkg|kde-gtk-config}} (part of the {{grp|plasma}} group) and select {{ic|Breeze}} or {{ic|Breeze-Dark}} as the GTK2/GTK3 theme in ''System Settings > Application Style > GNOME/GTK Application Style''.<br />
<br />
In some themes, tooltips in GTK applications have white text on white backgrounds making it difficult to read. To change the colors in GTK2 applications, find the section for tooltips in the {{ic|.gtkrc-2.0}} file and change it. For GTK3 application two files need to be changed, {{ic|gtk.css}} and {{ic|settings.ini}}.<br />
<br />
Some GTK2 programs like {{AUR|vuescan-bin}} still look hardly usable due to invisible checkboxes with the Breeze or Adwaita skin in a Plasma session. To workaround this, install and select e.g. the Numix-Frost-Light skin of the {{AUR|numix-frost-themes}} under ''System Settings'' > ''Application Style'' > ''GNOME/GTK Application Style'' > ''GTK2 Theme:''. Numix-Frost-Light looks similar to Breeze.<br />
<br />
===== Faces =====<br />
<br />
Plasma and [[SDDM]] will both use a PNG file found at {{ic|~/.face.icon}} as a user's avatar. To configure with a graphical interface, you can use ''System Settings > Accounts Details > User Manager'', which may first need to be [[install]]ed (see the {{Pkg|user-manager}} package). The default icon can be found in {{ic|/usr/share/sddm/faces/}}.<br />
<br />
===== Widgets =====<br />
<br />
Plasmoids are little scripted (plasmoid scripts) or coded (plasmoid binaries) KDE applications designed to enhance the functionality of your desktop.<br />
<br />
The easiest way to install plasmoid scripts is by right-clicking onto a panel or the desktop and choosing ''Add Widgets > Get New Widgets... > Download New Plasma Widgets''. This will present a nice frontend for https://store.kde.org/ that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Many Plasmoid binaries are available from the [https://aur.archlinux.org/packages.php?K=plasmoid AUR].<br />
<br />
===== Sound applet in the system tray =====<br />
<br />
[[Install]] {{Pkg|plasma-pa}} or {{Pkg|kmix}} (start Kmix from the Application Launcher). {{Pkg|plasma-pa}} is now installed by default with {{Grp|plasma}}, no further configuration needed.<br />
<br />
{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.config/kmixrc}}.}}<br />
<br />
===== Disable panel shadow =====<br />
<br />
As the Plasma panel is on top of other windows, its shadow is drawn over them. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] To disable this behaviour without impacting other shadows, [[install]] {{Pkg|xorg-xprop}} and run:<br />
<br />
$ xprop -remove _KDE_NET_WM_SHADOW<br />
<br />
then select the panel with the plus-sized cursor. [https://forum.kde.org/viewtopic.php?f=285&t=121592] For automation, install {{Pkg|xorg-xwininfo}} and create the following script:<br />
<br />
{{hc|/usr/local/bin/kde-no-shadow|<nowiki><br />
#!/bin/bash<br />
for WID in $(xwininfo -root -tree | sed '/"Plasma": ("plasmashell" "plasmashell")/!d; s/^ *\([^ ]*\) .*/\1/g'); do<br />
xprop -id $WID -remove _KDE_NET_WM_SHADOW<br />
done<br />
</nowiki>}}<br />
<br />
Set execution permissions for the script:<br />
<br />
# chmod 755 /usr/local/bin/kde-no-shadow<br />
<br />
The script can be run on login with ''Add Script'' in ''Autostart'':<br />
<br />
$ kcmshell5 autostart<br />
<br />
==== Window decorations ====<br />
<br />
[https://store.kde.org/browse/cat/114/ Window decorations] can be changed in ''System Settings > Application Style > Window Decorations''.<br />
<br />
There you can also directly download and install more themes with one click, and some are available in the [https://aur.archlinux.org/packages.php?K=kde+window+decoration AUR].<br />
<br />
==== Icon themes ====<br />
<br />
Icon themes can be installed and changed on ''System Settings > Icons''.<br />
<br />
{{Note|Although all modern Linux desktops share the same icon theme format, desktops like [[GNOME]] use fewer icons (esp. in menus and toolbars). Themes developed for such desktops usually lack icons required by Plasma and KDE apps. It is recommended to install Plasma compatible icon themes instead.}}<br />
<br />
{{Tip|Since some icon themes do not inherit from the default icon theme, some icons may be missing. <br />
To inherit from the Breeze, add {{ic|breeze}} to the {{ic|1=Inherits=}} array in {{ic|/usr/share/icon/''theme-name''/index.theme}}, for example: {{ic|1=Inherits=breeze,hicolor}}. You need to reapply this patch after every update to the icon theme, consider using [[Pacman hooks]] to automate the process.}}<br />
<br />
==== Space efficiency ====<br />
<br />
The Plasma Netbook shell has been dropped from Plasma 5, see the following [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 KDE forum post]. However, you can achieve something similar by editing the file {{ic|~/.config/kwinrc}} adding {{ic|1=BorderlessMaximizedWindows=true}} in the {{ic|[Windows]}} section.<br />
<br />
==== Thumbnail generation ====<br />
<br />
To allow thumbnail generation for media or document files on the desktop and in Dolphin, install {{Pkg|kdegraphics-thumbnailers}} and {{Pkg|ffmpegthumbs}}.<br />
<br />
Then enable the thumbnail categories for the desktop via ''right click'' on the ''desktop background'' > ''Configure Desktop'' > ''Icons'' > ''Configure Preview Plugins...''.<br />
<br />
In ''Dolphin'', navigate to ''Control'' > ''Configure Dolphin...'' > ''General'' > ''Previews''.<br />
<br />
=== Printing ===<br />
<br />
{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}<br />
<br />
You can also configure printers in ''System Settings > Printers''. To use this method, you must first install {{Pkg|print-manager}} and {{Pkg|cups}}. See [[CUPS#Configuration]].<br />
<br />
=== Samba/Windows support ===<br />
<br />
If you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).<br />
<br />
The Dolphin share functionality requires the package {{Pkg|kdenetwork-filesharing}} and usershares, which the stock {{ic|smb.conf}} does not have enabled. Instructions to add them are in [[Samba#Enable Usershares]], after which sharing in Dolphin should work out of the box after restarting Samba.<br />
<br />
{{Tip|Use {{ic|*}} (asterisk) for both username and password when accessing a Windows share without authentication in Dolphin's prompt.}}<br />
<br />
Unlike GTK file browsers which utilize GVfs also for the launched program, opening files from Samba shares in Dolphin via KIO makes Plasma copy the whole file to the local system first with most programs (VLC is an exception).<br />
To workaround this, you can use a GTK based file browser like {{Pkg|thunar}} with {{Pkg|gvfs}} and {{Pkg|gvfs-smb}} (and {{Pkg|gnome-keyring}} for saving login credentials) to access SMB shares in a more able way.<br />
<br />
Another possibility is to [[mount]] a Samba share via {{Pkg|cifs-utils}} to make it look to Plasma like if the SMB share was just a normal local folder and thus can be accessed normally.<br />
See [[Samba#Manual mounting]] and [[Samba#Automatic mounting]].<br />
<br />
An GUI solution is available with {{AUR|samba-mounter-git}}, which offers basically the same functionality via an easy to use option located at ''System Settings'' > ''Network Drivers''. However, it might break with new KDE Plasma versions.<br />
<br />
=== KDE Desktop activities ===<br />
<br />
[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] are special workspaces where you can select specific settings for each activity that apply only when you are using said activity.<br />
<br />
=== Power management ===<br />
<br />
[[Install]] {{Pkg|powerdevil}} for an integrated Plasma power managing service. This service offers additional power saving features, monitor brightness control (if supported) and battery reporting including peripheral devices.<br />
<br />
An alternative package without [[NetworkManager]] and [[Bluez]] dependencies is provided by {{AUR|powerdevil-light}}.<br />
<br />
{{Accuracy|Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid&#61;1649022#p1649022]}}<br />
<br />
{{Note|Powerdevil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}<br />
<br />
=== Autostart ===<br />
<br />
Plasma can autostart applications and run scripts on startup and shutdown. To autostart an application, navigate to ''System Settings > Startup and Shutdown > Autostart'' and add the program or shell script of your choice. For applications, a ''.desktop'' file will be created, for shell scripts, a symlink will be created.<br />
<br />
{{Note|<br />
* Programs can be autostarted on login only, whilst shell scripts can also be run on shutdown or even before Plasma itself starts.<br />
* Shell scripts will only be run if they are marked [[executable]].<br />
}}<br />
<br />
* Place [[Desktop entries]] (i.e. ''.desktop'' files) in the appropriate [[XDG Autostart]] directory.<br />
<br />
* Place or symlink shell scripts in one of the following directories:<br />
<br />
:; {{ic|~/.config/plasma-workspace/env/}}: for executing scripts at login before launching Plasma.<br />
:; {{ic|~/.config/autostart-scripts/}}: for executing scripts at login.<br />
:; {{ic|~/.config/plasma-workspace/shutdown/}}: for executing scripts on shutdown.<br />
<br />
=== Phonon ===<br />
<br />
From [[Wikipedia:Phonon (software)|Wikipedia]]:<br />
<br />
:Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.<br />
<br />
:Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime.<br />
<br />
Phonon is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio apps) and video (e.g., the [[Dolphin]] video thumbnails).<br />
<br />
==== Which backend should I choose? ====<br />
<br />
You can choose between backends based on [[GStreamer]] and [[VLC]] – each available in versions for Qt4 applications and Qt5 applications ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} – {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}).<br />
<br />
[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM Upstream prefers VLC] but prominent Linux distributions (Kubuntu and Fedora-KDE for example) prefer GStreamer because that allows them to easily leave out patented MPEG codecs from the default installation. Both backends have a slightly different [https://community.kde.org/Phonon/FeatureMatrix features set]. The Gstreamer backend has some optional codec dependency, install them as needed:<br />
<br />
* {{Pkg|gst-libav}} — Libav codecs.<br />
* {{Pkg|gst-plugins-good}} — PulseAudio support and additional codecs.<br />
* {{Pkg|gst-plugins-ugly}} — additional codecs.<br />
* {{Pkg|gst-plugins-bad}} — additional codecs.<br />
<br />
In the past other backends were developed as well but are no longer maintained and their AUR packages have been deleted.<br />
<br />
{{Note|1=<br><br />
* Multiple backends can be installed at once and prioritized via the ''phononsettings'' application.<br />
* According to the [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 KDE forums], the VLC backend lacks support for [[wikipedia:ReplayGain|ReplayGain]].<br />
* If using the VLC backend, you may experience crashes every time Plasma wants to send you an audible warning and in quite a number of other cases as well [https://forum.kde.org/viewtopic.php?f=289&t=135956]. A possible fix is to rebuild the VLC plugins cache:<br />
{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}<br />
}}<br />
<br />
== Applications ==<br />
<br />
The KDE project provides a suite of applications that integrate with the Plasma desktop. See the {{Grp|kde-applications}} group for a full listing of the available applications. Also see [[:Category:KDE]] for related KDE application pages.<br />
<br />
Aside from the programs provided in KDE Applications, there are many other applications available that can complement the Plasma desktop. Some of these are discussed below.<br />
<br />
=== System administration ===<br />
<br />
==== Terminate Xorg server through KDE System Settings ====<br />
<br />
Navigate to the submenu ''System Settings > Input Devices > Keyboard > Advanced (tab) > "Key Sequence to kill the X server"'' and ensure that the checkbox is ticked.<br />
<br />
==== KCM ====<br />
<br />
KCM stands for '''KC'''onfig '''M'''odule. KCMs can help you configure your system by providing interfaces in System Settings, or through the command line with ''kcmshell5''.<br />
<br />
* {{App|sddm-kcm|KDE Config Module for [[SDDM]].|https://cgit.kde.org/sddm-kcm.git|{{Pkg|sddm-kcm}}}}<br />
* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}<br />
* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://cgit.kde.org/polkit-kde-kcmodules-1.git|{{AUR|kcm-polkit-kde-git}}}}<br />
* {{App|wacom tablet|KDE GUI for the Wacom Linux Drivers.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}<br />
* {{App|Kcmsystemd|systemd control module for KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}<br />
<br />
More KCMs can be found at [https://www.linux-apps.com/search?projectSearchText=KCM linux-apps.com].<br />
<br />
=== Desktop search ===<br />
<br />
KDE implements desktop search with a software called [[Baloo]], a file indexing and searching solution.<br />
<br />
=== Web browsers ===<br />
<br />
The following web browsers can integrate with Plasma:<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Part of the KDE project, supports two rendering engines – KHTML and the [[Chromium]]-based Qt WebEngine.|https://konqueror.org/|{{Pkg|konqueror}}}}<br />
* {{App|[[Wikipedia:Falkon|Falkon]]|A Qt web browser with Plasma integration features, previously known as Qupzilla. It uses Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}<br />
* {{App|[[Chromium]]|Chromium and its proprietary variant Google Chrome have limited Plasma integration. [[KDE Wallet#KDE Wallet for Chrome and Chromium|They can use KWallet]] and KDE Open/Save windows.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Firefox]]|Firefox can be configured to better integrate with Plasma. See [[Firefox#KDE/GNOME integration|Firefox KDE integration]] for details.|https://mozilla.org/firefox|{{Pkg|firefox}}}}<br />
<br />
{{Tip|Starting from Plasma 5.13, one can integrate [[Firefox]] or [[Chrome]] with Plasma: providing media playback control from the Plasma tray, download notifications and find open tabs in KRunner. [[Install]] {{pkg|plasma-browser-integration}} and the corresponding browser add-on. Chrome/Chromium support should already be included, for Firefox add-on see [[Firefox#KDE/GNOME integration]].}}<br />
<br />
=== PIM ===<br />
<br />
KDE offers its own stack for [[Wikipedia:Personal information management|personal information management]] (PIM). This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the {{Grp|kdepim}} package group or the {{Pkg|kdepim-meta}} meta package.<br />
<br />
==== Akonadi ====<br />
<br />
Akonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on. Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).<br />
<br />
Install {{Pkg|akonadi}}. For additional addons, install {{Pkg|kdepim-addons}}.<br />
<br />
{{Note|If you wish to use a database engine other than [[MariaDB]], then when installing the {{Pkg|akonadi}} package, use the following command to skip installing the {{Pkg|mariadb}} dependencies:<br />
<br />
# pacman -S akonadi --assume-installed mariadb<br />
<br />
See also {{Bug|32878}}.<br />
}}<br />
<br />
===== MySQL =====<br />
<br />
By default Akonadi will use {{ic|/usr/bin/mysqld}} ([[MariaDB]] by default, see [[MySQL]] for alternative providers) to run a managed MySQL instance with the database stored in {{ic|~/.local/share/akonadi/db_data/}}.<br />
<br />
====== System-wide MySQL instance ======<br />
<br />
Akonadi supports using the system-wide [[MySQL]] for its database.[https://techbase.kde.org/KDE_PIM/Akonadi#Can_Akonadi_use_a_normal_MySQL_server_running_on_my_system.3F]<br />
<br />
{{Expansion|Add instructions.}}<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QMYSQL<br />
<br />
[QMYSQL]<br />
Host=<br />
Name=akonadi_''username''<br />
Options="UNIX_SOCKET=/run/mysqld/mysqld.sock"<br />
StartServer=false<br />
}}<br />
<br />
===== PostgreSQL =====<br />
<br />
Akonadi supports either using the existing system-wide [[PostgreSQL]] instance, i.e. {{ic|postgresql.service}}, or running a PostgreSQL instance with user privileges and the database in {{ic|~/.local/share/akonadi/db_data/}}.<br />
<br />
====== Per-user PostgreSQL instance ======<br />
<br />
[[Install]] {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}.<br />
<br />
Edit Akonadi configuration file so that it has the following contents:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QPSQL<br />
}}<br />
<br />
{{Note|<br />
* When Akonadi starts, it will create the {{ic|[QPSQL]}} section and set the appropriate variables in it.<br />
* The database will be stored in {{ic|~/.local/share/akonadi/db_data/}}.<br />
}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
{{Note|<br />
* Starting with {{Pkg|akonadi}} 19.08.0-1 the PostgreSQL database cluster in {{ic|~/.local/share/akonadi/db_data/}} will get automatically upgraded when a major PostgreSQL version upgrade is detected.<br />
* For previous {{Pkg|akonadi}} versions major PostgreSQL version upgrades will require a manual database upgrade. Follow the [https://userbase.kde.org/Akonadi/Postgres_update update instructions on KDE UserBase Wiki]. Make sure to adjust the paths to PostgreSQL binaries to those used by {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}, see [[PostgreSQL#Upgrading PostgreSQL]].<br />
}}<br />
<br />
====== System-wide PostgreSQL instance ======<br />
<br />
This requires an already configured and running [[PostgreSQL]].<br />
<br />
Create a PostgreSQL user account for your user:<br />
<br />
[postgres]$ createuser ''username''<br />
<br />
Create a database for Akonadi:<br />
<br />
[postgres]$ createdb -O ''username'' --locale=en_US.UTF-8 -T template0 akonadi-''username''<br />
<br />
Configure Akonadi to use the system-wide PostgreSQL:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QPSQL<br />
<br />
[QPSQL]<br />
Host=/run/postgresql<br />
Name=akonadi-''username''<br />
StartServer=false<br />
}}<br />
<br />
{{Note|Custom port, username and password can be specified with options {{ic|1=Port=}}, {{ic|1=User=}}, {{ic|1=Password=}} in the {{ic|[QPSQL]}} section.}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
===== SQLite =====<br />
<br />
To use [[SQLite]] edit Akonadi configuration file to match the configuration below:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QSQLITE3<br />
}}<br />
<br />
{{Note|<br />
* When Akonadi starts, it will create the {{ic|[QSQLITE3]}} section and set the appropriate variables in it.<br />
* The database will be stored as {{ic|~/.local/share/akonadi/akonadi.db}}.<br />
}}<br />
<br />
===== Disabling Akonadi =====<br />
<br />
See this [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase].<br />
<br />
=== KDE Telepathy ===<br />
<br />
[https://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.<br />
<br />
To install all Telepathy protocols, install the {{Grp|telepathy}} group.<br />
To use the KDE Telepathy client, install the {{Pkg|telepathy-kde-meta}} package that includes all the packages contained in the {{Grp|telepathy-kde}} group.<br />
<br />
==== Use Telegram with KDE Telepathy ====<br />
<br />
[[Telegram]] protocol is available using {{pkg|telepathy-haze}}, installing {{aur|telegram-purple}} or {{aur|telegram-purple-git}} and {{aur|telepathy-morse-git}}. The username is the Telegram account telephone number (complete with the national prefix {{ic|+''xx''}}, e.g. {{ic|+49}} for Germany).<br />
<br />
The configuration through the GUI may be tricky: if the phone number is not accepted when configuring a new account in the KDE Telepathy client (with an error message complaining about an invalid parameter which prevents the account creation), insert it between single quotes and then remove the quotes manually from the configuration file ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) after the account creation (if the quotes are not removed after, an authentication error should rise).<br />
<br />
{{Note|The configuration file should be edited manually when KDE Telepathy is not running, e.g. when there is no KDE desktop session active, otherwise manual changes may be overwritten by the software.}}<br />
<br />
=== KDE Connect ===<br />
<br />
[https://community.kde.org/KDEConnect KDE Connect] provides several features to connect your [[Android]] phone with your Linux desktop:<br />
<br />
* Share files and URLs to/from KDE from/to any app, without wires.<br />
* Touchpad emulation: Use your phone screen as your computer's touchpad.<br />
* Notifications sync (4.3+): Read your Android notifications from the desktop.<br />
* Shared clipboard: copy and paste between your phone and your computer.<br />
* Multimedia remote control: Use your phone as a remote for Linux media players.<br />
* WiFi connection: no usb wire or bluetooth needed.<br />
* RSA Encryption: your information is safe.<br />
<br />
You will need to install KDE Connect both on your computer and on your Android. For PC side, [[install]] {{Pkg|kdeconnect}} package. For Android side, install KDE Connect from [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] or from [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid]. If you want to browse your phone's filesystem, you need to [[install]] {{Pkg|sshfs}} as well and configure filesystem exposes in your Android app.<br />
<br />
It is possible to use KDE Connect even if you do not use the Plasma desktop. For desktop environments that use AppIndicators, such as Unity, install {{AUR|indicator-kdeconnect}} package as well. For GNOME users, better integration can be achieved by installing {{AUR|gnome-shell-extension-gsconnect}} instead of {{Pkg|kdeconnect}}. To start the KDE Connect daemon manually, execute {{ic|/usr/lib/kdeconnectd}}.<br />
<br />
If you use a [[firewall]], you need to open UDP and TCP ports {{ic|1714}} through {{ic|1764}}. See https://community.kde.org/KDEConnect#Troubleshooting.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Use a different window manager ===<br />
<br />
The component chooser settings in Plasma does not allow changing the window manager anymore. [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade]<br />
In order to change the window manager used you need to set the {{ic|KDEWM}} [[environment variable]] before KDE startup. [https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE] To do that you can create a script called {{ic|set_window_manager.sh}} in {{ic|~/.config/plasma-workspace/env/}} and export the {{ic|KDEWM}} variable there. For example to use the i3 window manager :<br />
<br />
{{hc|~/.config/plasma-workspace/env/set_window_manager.sh|2=<br />
export KDEWM=/usr/bin/i3<br />
}}<br />
<br />
And then make it executable :<br />
<br />
{{bc|$ chmod +x ~/.config/plasma-workspace/env/set_window_manager.sh}}<br />
<br />
{{Note|When using i3 window manager with Plasma, it may be necessary to manually set dialogs to open in floating mode in order for them to correctly appear. For more information, see [[I3#Correct handling of floating dialogs]].}}<br />
<br />
==== KDE/Openbox session ====<br />
<br />
The {{Pkg|openbox}} package provides a session for using KDE with [[Openbox]]. To make use of this session, select ''KDE/Openbox'' from the [[display manager]] menu.<br />
<br />
For those starting the session manually, add the following line to your [[xinit]] configuration:<br />
<br />
{{hc|~/.xinitrc|<br />
exec openbox-kde-session<br />
}}<br />
<br />
==== Re-enabling compositing effects ====<br />
<br />
When replacing Kwin with a window manager which does not provide a Compositor (such as Openbox), any desktop compositing effects e.g. transparency will be lost. In this case, install and run a separate Composite manager to provide the effects such as [[Xcompmgr]] or [[Compton]].<br />
<br />
=== Configuring monitor resolution / multiple monitors ===<br />
<br />
To enable display resolution management and multiple monitors in Plasma, install {{Pkg|kscreen}}. This provides additional options to ''System Settings > Display and Monitor''.<br />
<br />
=== KWin-lowlatency ===<br />
<br />
[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] is a attempt to reduce latency and stuttering in the popular KWin compositor and is available as {{AUR|kwin-lowlatency}}.<br />
<br />
=== Configuring ICC profiles ===<br />
<br />
To enable [[ICC profiles]] in Plasma, [[install]] {{Pkg|colord-kde}}. This provides additional options to ''System Settings > Color Corrections''.<br />
<br />
ICC profiles can be imported using ''Add Profile''.<br />
<br />
=== Disable opening application launcher with Super key (Windows key) ===<br />
<br />
To disable this feature you currently can run the following command:<br />
<br />
$ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta ""<br />
<br />
=== Disable bookmarks showing in application menu ===<br />
<br />
With Plasma Browser integration installed, KDE will show bookmarks in the application launcher.<br />
<br />
To disable this feature you currently can run the following commands:<br />
<br />
$ mkdir ~/.local/share/kservices5<br />
$ sed 's/EnabledByDefault=true$/EnabledByDefault=false/' /usr/share/kservices5/plasma-runner-bookmarks.desktop > ~/.local/share/kservices5/plasma-runner-bookmarks.desktop<br />
<br />
== Troubleshooting ==<br />
<br />
=== Fonts ===<br />
<br />
==== Fonts in a Plasma session look poor ====<br />
<br />
Try installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.<br />
<br />
After the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Fonts''. If you are using {{Pkg|qt5ct}}, the settings in Qt5 Configuration Tool may override the font settings in System Settings.<br />
<br />
If you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Fonts'' System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).<br />
<br />
There is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.<br />
<br />
==== Fonts are huge or seem disproportional ====<br />
<br />
Try to force font DPI to {{ic|'''96'''}} in ''System Settings > Fonts''.<br />
<br />
If that does not work, try setting the DPI directly in your Xorg configuration as documented in [[Xorg#Setting DPI manually]].<br />
<br />
=== Configuration related ===<br />
<br />
Many problems in KDE are related to its configuration.<br />
<br />
==== Plasma desktop behaves strangely ====<br />
<br />
Plasma problems are usually caused by unstable ''Plasma widgets'' (colloquially called ''plasmoids'') or ''Plasma themes''. First, find which was the last widget or theme you had installed and disable or uninstall it.<br />
<br />
So, if your desktop suddenly exhibits "locking up", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report on the [https://bugs.kde.org/ KDE bug tracker] '''only if it is an official widget'''. If it is not, it is recommended to find the entry on the [https://store.kde.org/ KDE Store] and inform the developer of that widget about the problem (detailing steps to reproduce, etc.).<br />
<br />
If you cannot find the problem, but you do not want ''all'' the settings to be lost, navigate to {{ic|~/.config/}} and run the following command:<br />
<br />
$ for j in plasma*; do mv -- "$j" "${j%}.bak"; done<br />
<br />
This command will rename '''all''' Plasma related configuration files to ''*.bak'' (e.g. {{ic|plasmarc.bak}}) of your user and when you will relogin into Plasma, you will have the default settings back. To undo that action, remove the ''.bak'' file extension. If you already have ''*.bak'' files, rename, move, or delete them first. It is highly recommended that you create regular backups anyway. See [[Synchronization and backup programs]] for a list of possible solutions.<br />
<br />
==== Clean cache to resolve upgrade problems ====<br />
<br />
The [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes, after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings, Ark being unable to extract archives or Amarok not recognizing any of your music. This solution can also resolve problems with KDE and Qt applications looking bad after an update.<br />
<br />
Rebuild the cache using the following commands:<br />
<br />
$ rm ~/.config/Trolltech.conf<br />
$ kbuildsycoca5 --noincremental<br />
<br />
Optionally, empty the {{ic|~/.cache/}} folder contents, however, this will also clear the cache of other applications:<br />
<br />
$ rm -rf ~/.cache/*<br />
<br />
==== Volume control, notifications or multimedia keys do not work ====<br />
<br />
Hiding certain items in the System Tray settings (e.g. Audio Volume, Media Player or Notifications) also disables related features. Hiding the ''Audio Volume'' disables volume control keys, ''Media Player'' disables multimedia keys (rewind, stop, pause) and hiding ''Notifications'' disables showing notifications.<br />
<br />
==== Login Screen KCM does not sync cursor settings to SDDM ====<br />
<br />
The Login Screen KCM reads your cursor settings from {{ic|~/.config/kcminputrc}}, without this file no settings are synced. The easiest way to generate this file is to change your cursor theme in ''System Settings > Cursors'', then change it back to your preferred cursor theme.<br />
<br />
=== Graphical problems ===<br />
<br />
Make sure you have the proper driver for your GPU installed. See [[Xorg#Driver installation]] for more information. If you have an older card, it might help to [[#Disable desktop effects manually or automatically for defined applications]] or [[#Disable compositing]].<br />
<br />
==== Getting current state of KWin for support and debug purposes ====<br />
<br />
This command prints out a summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].<br />
<br />
$ qdbus org.kde.KWin /KWin supportInformation<br />
<br />
==== Disable desktop effects manually or automatically for defined applications ====<br />
<br />
Plasma has desktop effects enabled by default and e.g. not every game will disable them automatically. You can disable desktop effects in ''System Settings > Desktop Behavior > Desktop Effects'' and you can toggle desktop effects with {{ic|Alt+Shift+F12}}. <br />
<br />
Additionally, you can create custom KWin rules to automatically disable/enable compositing when a certain application/window starts under ''System Settings > Window Management > Window Rules''.<br />
<br />
==== Enable transparency ====<br />
<br />
If you use a transparent background without enabling the compositor, you will get the message:<br />
<br />
This color scheme uses a transparent background which does not appear to be supported on your desktop<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', check ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Disable compositing ====<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', uncheck ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Flickering in fullscreen when compositing is enabled ====<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', uncheck ''Allow applications to block compositing''. This may harm performance.<br />
<br />
==== Screen tearing with NVIDIA ====<br />
<br />
See [[NVIDIA/Troubleshooting#Avoid screen tearing in KDE (KWin)]].<br />
<br />
==== Plasma cursor sometimes shown incorrectly ====<br />
<br />
Create the directory {{ic|~/.icons/default}} and inside a file named {{ic|index.theme}} with the following contents:<br />
<br />
{{hc|~/.icons/default/index.theme|2=<br />
[Icon Theme]<br />
Inherits=breeze_cursors<br />
}}<br />
<br />
Execute the following command:<br />
<br />
$ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors<br />
<br />
==== Unusable screen resolution set ====<br />
<br />
Your local configuration settings for kscreen can override those set in {{ic|xorg.conf}}. Look for kscreen configuration files in {{ic|~/.local/share/kscreen/}} and check if mode is being set to a resolution that is not supported by your monitor.<br />
<br />
==== Blurry icons in System tray ====<br />
<br />
In order to add icons to tray, applications often make use of the library appindicator. If your icons are blurry, check which version of libappindicator you have installed. If you only have {{Pkg|libappindicator-gtk2}} installed, you can install {{Pkg|libappindicator-gtk3}} or {{Pkg|libappindicator-sharp}} as an attempt to get clear icons.<br />
<br />
=== Sound problems ===<br />
<br />
{{Note|First make sure you have {{Pkg|alsa-utils}} installed.}}<br />
<br />
==== No sound after suspend ====<br />
<br />
If there is no sound after suspending and if KMix does not show audio devices which should be there, restarting plasmashell and pulseaudio may help:<br />
<br />
$ killall plasmashell<br />
$ systemctl --user restart pulseaudio.service<br />
$ plasmashell<br />
<br />
Some applications may also need to be restarted in order for sound to play from them again.<br />
<br />
==== MP3 files cannot be played when using the GStreamer Phonon backend ====<br />
<br />
This can be solved by installing the GStreamer libav plugin (package {{Pkg|gst-libav}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{AUR|phonon-qt4-vlc}} or {{Pkg|phonon-qt5-vlc}}.<br />
<br />
Then, make sure the backend is preferred via ''System Settings > Multimedia > Audio and Video > Backend''.<br />
<br />
=== Power management ===<br />
<br />
==== No Suspend/Hibernate options ====<br />
<br />
If your system is able to suspend or hibernate using [[systemd]] but do not have these options shown in KDE, make sure {{Pkg|powerdevil}} is installed.<br />
<br />
=== KMail ===<br />
<br />
==== Clean Akonadi configuration to fix KMail ====<br />
<br />
See [https://docs.kde.org/trunk5/en/pim/kmail2/clean-start-after-a-failed-migration.html this] document for detail.<br />
<br />
If you want a backup, copy the following configuration directories:<br />
<br />
$ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old<br />
$ cp -a ~/.config/akonadi ~/.config/akonadi-old<br />
<br />
==== Empty IMAP inbox in KMail ====<br />
<br />
For some IMAP accounts KMail will show the inbox as a top-level container (so it will not be possible to read messages there) with all other folders of this account inside.[https://bugs.kde.org/show_bug.cgi?id=284172]. To solve this problem simply disable the server-side subscriptions in the KMail account settings.<br />
<br />
==== Authorization error for EWS account in KMail ====<br />
<br />
While setting up EWS account in KMail, you may keep getting errors about failed authorization even for valid and fully working credentials. This is likely caused by broken communication between [[KWallet]] and KMail. To workaround the issue set a passsword via qdbus:<br />
<br />
$ qdbus org.freedesktop.Akonadi.Resource.akonadi_ews_resource_0 /Settings org.kde.Akonadi.Ews.Wallet.setPassword "XXX"<br />
<br />
=== Aggressive QXcbConnection journal logging ===<br />
<br />
See [[Qt#Disable/Change Qt journal logging behaviour]].<br />
<br />
=== KF5/Qt 5 applications do not display icons in i3/FVWM/awesome ===<br />
<br />
See [[Qt#Configuration of Qt5 apps under environments other than KDE Plasma]].<br />
<br />
=== Problems with saving credentials and persistently occurring KWallet dialogs ===<br />
<br />
It is not recommended to turn off the [[KWallet]] password saving system in the user settings as it is required to save encrypted credentials like WiFi passphrases for each user. Persistently occuring KWallet dialogs can be the consequence of turning it off.<br />
<br />
In case you find the dialogs to unlock the wallet annoying when applications want to access it, you can let the [[Display manager|display managers]] [[SDDM]] and [[LightDM]] unlock the wallet at login automatically, see [[KDE Wallet#Unlock KDE Wallet automatically on login]]. The first wallet needs to be generated by KWallet (and not user-generated) in order to be usable for system program credentials.<br />
<br />
In case you want the wallet credentials not to be opened in memory for every application, you can restrict applications from accessing it with {{Pkg|kwalletmanager}} in the KWallet settings.<br />
<br />
If you do not care for credential encryption at all, you can simply leave the password forms blank when KWallet asks for the password while creating a wallet. In this case, applications can access passwords without having to unlock the wallet first.<br />
<br />
=== Discover does not show any applications ===<br />
<br />
This can be solved by installing {{Pkg|packagekit-qt5}}.<br />
<br />
=== High CPU usage of kscreenlocker_greet with NVIDIA drivers ===<br />
<br />
As described in [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] NVIDIA OpenGL drivers and QML may not play well together with Qt 5. This may lead {{ic|kscreenlocker_greet}} to high CPU usage after unlocking the session. To work around this issue, set the {{ic|QSG_RENDERER_LOOP}} [[environment variable]] to {{ic|basic}}.<br />
<br />
Then kill previous instances of the greeter with {{ic|killall kscreenlocker_greet}}.<br />
<br />
=== OS error 22 when running Akonadi on ZFS ===<br />
<br />
If your home directory is on a [[ZFS]] pool, create a {{ic|~/.config/akonadi/mysql-local.conf}} file with the following contents:<br />
<br />
[mysqld]<br />
innodb_use_native_aio = 0<br />
<br />
See [[MariaDB#OS error 22 when running on ZFS]].<br />
<br />
=== Some programs are unable to scroll when their windows are inactive ===<br />
<br />
This is caused by the problematic way of GTK3 handling mouse scroll events. A workaround for this is to set [[environment variable]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. However, this workaround also breaks touchpad smooth scrolling and touchscreen scrolling.<br />
<br />
=== TeamViewer behaves slowly ===<br />
<br />
When using TeamViewer, it may behave slowly if you use smooth animations (such as windows minimizing). See [[#Disable compositing]] as a workaround.<br />
<br />
== See also ==<br />
<br />
* [https://www.kde.org/ KDE homepage]<br />
* [https://dot.kde.org/ KDE news]<br />
* [https://planet.kde.org/ KDE Blogs]<br />
* [https://forum.kde.org/ KDE Forums]<br />
* [https://wiki.kde.org/ KDE Wikis]<br />
* [https://bugs.kde.org/ KDE bug tracker and reporter]<br />
* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]</div>Canhahttps://wiki.archlinux.org/index.php?title=Keybase&diff=584752Keybase2019-10-08T10:52:28Z<p>Canha: Tray icon using AppIndicator GNOME Shell extension resolution</p>
<hr />
<div>[[Category:Encryption]]<br />
[[ja:Keybase]]<br />
{{Related articles start}}<br />
{{Related|GnuPG}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Keybase|Wikipedia]]:<br />
:Keybase is a key directory that maps social media identities to encryption keys (including, but not limited to PGP keys) in a publicly auditable manner. Keybase also offers an encrypted chat and cloud storage system, called Keybase Chat and the Keybase filesystem respectively. Files placed in the public portion of the filesystem are served from a public endpoint, as well as locally from a filesystem mounted by the Keybase client. Keybase supports publicly connecting Twitter, GitHub, Facebook, Reddit, and Hacker News identities to encryption keys, along with Bitcoin and Zcash wallet addresses.<br />
<br />
== Installation ==<br />
<br />
Keybase is provided by the {{Pkg|keybase}} package. The KBFS filesystem and Keybase GUI can be additionally installed with the {{Pkg|kbfs}} and {{Pkg|keybase-gui}} packages. Alternatively, {{AUR|keybase-bin}} is available on the AUR which includes everything in a single package. See also the [https://keybase.io/docs/the_app/install_linux install instructions on keybase.io].<br />
<br />
== Signup / Login ==<br />
<br />
If you installed the GUI via {{AUR|keybase-bin}}, it will walk you through signup. These instructions are for the CLI-only {{Pkg|keybase}} package.<br />
<br />
Keybase requires its service to be running so you can interact with it. First start the keybase service by starting the included systemd service as your user (enable this service to run on boot):<br />
<br />
$ systemctl start --user keybase<br />
<br />
Or alternatively, run the keybase service manually:<br />
<br />
$ keybase service<br />
<br />
To signup for a Keybase account use, and follow the on-screen prompts:<br />
<br />
$ keybase signup<br />
<br />
If you already have a Keybase account you can login with:<br />
<br />
$ keybase login <keybase_username><br />
<br />
== GnuPG Keys ==<br />
<br />
During the interactive signup if you already have any GnuPG key pairs on your keyring, Keybase will ask if you wish to use one of them. If you do not have a key pair, you can generate one with:<br />
<br />
$ keybase pgp gen<br />
<br />
This will interactively generate a key pair and securely upload the keys.<br />
<br />
== Keybase Filesystem (KBFS) ==<br />
<br />
KBFS uses [[Wikipedia:Filesystem in Userspace|FUSE]] to mount the remote cryptographic filesystem. It comes with the {{AUR|keybase-bin}} package, or can be installed separately with {{Pkg|kbfs}}.<br />
<br />
Keybase allows users to store up to 250 GB of files in a cloud storage called the Keybase filesystem. The filesystem is divided into three parts: public files, private files, and team files. The filesystem is mounted to {{ic|/keybase}} by default if installed through {{AUR|keybase-bin}}.<br />
<br />
To configure kbfs if installed via the {{Pkg|kbfs}} package, first ensure the keybase service is running (see instructions above). Then configure the desired mountpoint for the KBFS:<br />
<br />
$ keybase config set mountdir /path/to/kbfs<br />
<br />
Now the {{ic|kbfs}} service can be started:<br />
<br />
$ systemctl start --user kbfs<br />
<br />
Enable this service to have the kbfs mounted on boot.<br />
<br />
All files under {{ic|/path/to/kbfs/public}} are automatically signed by the client. All files under {{ic|/path/to/kbfs/private}} are both encrypted and signed before being uploaded, making them end-to-end encrypted. See the [https://keybase.io/docs/kbfs KBFS docs on keybase.io] for more information and usage instructions.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Keybase GUI starts automatically ===<br />
<br />
By default, keybase-gui add a desktop entry in your [[XDG_Autostart|autostart]]. To disable it:<br />
<br />
{{bc|keybase ctl autostart --disable}}<br />
<br />
=== Tray icon using AppIndicator GNOME Shell extension ===<br />
<br />
You might find that no icon shows up when Keybase starts, if you are using the {{AUR|gnome-shell-extension-appindicator}} extension. It seems that Electron needs the {{Pkg|libappindicator-gtk3}} to be installed, so that it can create and manage those icons.<br />
<br />
== See also ==<br />
<br />
* [https://keybase.io/ Keybase Homepage]<br />
* [[Wikipedia:Keybase]]<br />
* [https://keybase.io/docs/command_line Keybase Basics]</div>Canha