https://wiki.archlinux.org/api.php?action=feedcontributions&user=Hasardeur&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:52:50ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Gaming&diff=794460Gaming2023-12-13T18:47:32Z<p>Hasardeur: /* Getting games */ replaced the dead link with the current and correct one</p>
<hr />
<div>[[Category:Gaming]]<br />
[[de:Spiele]]<br />
[[ja:ゲーム]]<br />
[[lt:Games]]<br />
[[zh-hans:Gaming]]<br />
{{Related articles start}}<br />
{{Related|List of games}}<br />
{{Related|Video game platform emulators}}<br />
{{Related|Xorg}}<br />
{{Related|Gamepad}}<br />
{{Related|Wine}}<br />
{{Related articles end}}<br />
<br />
Linux has long been considered an "unofficial" gaming platform; the support and target audience provided to it is not a primary priority for most gaming organizations. Changes to this situation have accelerated, starting from 2021 onward, as big players like [[Wikipedia:Valve Corporation|Valve]], the [[Wikipedia:CodeWeavers|CodeWeavers]] group and the [[Wikipedia:Open-source software development|community]] have made tremendous improvements to the ecosystem, allowing Linux to truly become a viable platform for gaming. Further, more and more indie development teams strive to use cross-platform rendering engines in order to have their game able to compile and run on Linux.<br />
<br />
When it comes to gaming, the majority of user's thoughts are often directed towards popular [[Wikipedia:AAA games|AAA games]] which are usually written exclusively for the [[Wikipedia:Microsoft Windows|Microsoft Windows]] platform. This is understandable, however, it is not the only and sole availability. Please refer to [[#Game environments]] and [[#Getting games]] further down the page where you can find software to run games from other platforms.<br />
<br />
If you however are fixated on getting games written for [[Wikipedia:Microsoft Windows|Microsoft Windows]] to work on Linux, then a different mindset, tools and approach is required; understanding internals and providing functional substitution. Please read [[#Game technicality]] below.<br />
<br />
== Game technicality ==<br />
<br />
There are ultimately ''three complications'' that arise from attempting to play [[Wikipedia:AAA games|AAA games]] made for Windows on Linux. They are:<br />
<br />
; Graphics SDK:<br />
: Games written and compiled for an API that Linux does not recognize (such as [[Wikipedia:DirectX|DirectX]]).<br />
; General library dependencies:<br />
: Libraries necessary for doing general purpose operations during gameplay, such as saving in-game, loading configuration files (e.g Microsoft Visual C++, MFC, .NET)<br />
; Incompatible interfaces:<br />
: Aside from the frameworks mentioned above, there is a further problem with binary formats and compiled code generated by Windows which Linux does not recognize.<br />
<br />
Graphics SDK forward graphical calls to the underlying graphics driver which then proceeds to talking to the GPU hardware.<br />
<br />
A huge amount of games use [[Wikipedia:DirectX|DirectX]] as their main driving SDK. Linux, natively supports only [[Wikipedia:OpenGL|OpenGL]] and [[Wikipedia:Vulkan (API)|Vulkan]]. Linux by itself does not support [[Wikipedia:DirectX|DirectX]] or any of the aforementioned technologies (Visual C++, MFC, .NET).<br />
<br />
Instead, several opensource equivalents have been written which attempt to provide '''identical''' functionality, ultimately achieving the same result from a graphics point of view. These equivalents have their "own" written substitutes which attempt to "re-invent" what the original SDK calls would possibly achieve from a [[Wikipedia:black box|black box]] point of view. Popular ones include:<br />
<br />
* [[Wine]] (Wine Is Not an Emulator) [provides a "loader vm", self written dependencies, interop and more]<br />
* [[Proton]] (forked Wine project, optimized for Steam by Valve)<br />
* [[Wikipedia:Mono (software)|Mono]] (.NET alternative)<br />
* [[Wikipedia:Media Foundation|MF-Media]] (media foundation dependencies)<br />
<br />
For example, a call to load, transform and shade vertices on [[Wikipedia:DirectX|DirectX]] may be re-written from scratch in a new ''.dll''/''.so'' owned by Wine, providing their own "hypothetical" belief on what the function may be doing underneath, and forward it instead to an [[Wikipedia:OpenGL|OpenGL]] alternative, effectively trying to achieve similar results. Since these calls are direct equivalents and treated "as if" DirectX was running, performance is not impacted. (with the exception of the starting overhead to interop with these)<br />
<br />
These tools are often brought in the distribution together on the system at the same time. A '''prefix''' (Wine's terminology for a directory mimicking a Windows sandbox) is created and configured. Dependencies are installed '''inside the prefix''' (the "sandbox" still needs the game's [[Wikipedia:Library (computing)|redistributables]]), often with [https://wiki.winehq.org/Winetricks winetricks], followed by an attempt to run the game "as if" it was executed from Windows.<br />
<br />
This, nowadays, fortunately works for most games (aside from [https://www.keengamer.com/articles/features/opinion-pieces/kernel-level-anti-cheat-and-7-games-or-programs-that-use-it/ anti-cheat protected ones], which require a kernel driver that Wine/Proton does not yet have). If a game does not work, it is usually as a result of incompatible packages, missing dependencies or unimplemented functionality by Wine/Proton.<br />
<br />
Lutris is a piece of software that provides runners and sandboxes that handle dependencies for you when you install games, if the above process is found tedious and/or complicated.<br />
<br />
== Common game dependencies ==<br />
<br />
In order to gain a more in-depth understanding of what you will intend to do if you decide to go the Wine/Proton route, it is worthwhile to cover the common dependencies that games require in order to execute. Architecture also needs to be considered in mind, whether x86 or x64, preferably both.<br />
<br />
A prefix would need to have the following populated into it in order to run '''most''' Windows games.<br />
<br />
=== Mandatory (for high coverage) ===<br />
<br />
{{Style|Links to wiki articles that contain package links (e.g. [[Fonts]]) should be used here}}<br />
<br />
* [[Microsoft fonts|Microsoft Core Fonts]]<br />
* Microsoft Visual C++ 2015 (2017 has the most coverage, recommended) [2005, 2008, 2010, 2012, 2013, 2015, 2017-2018, 2019]<br />
* DirectX 9.0 (11.0 has the most coverage, recommended) [June SDK update 2010] {which consists of, to name a few:}<br />
** Direct3D<br />
** Direct2D<br />
** DirectShow<br />
** DirectInput<br />
** DirectPlay<br />
** DirectSound<br />
** DXGI<br />
** XAudio2<br />
* .NET Framework (3.5 has most coverage)<br />
* [[OpenGL]]<br />
** OpenAL<br />
** OpenAI<br />
** OpenCL<br />
* [[Vulkan]]<br />
<br />
=== Optional (but still common) ===<br />
<br />
* XNA<br />
* PhysX<br />
* Media Foundation<br />
* Quicktime<br />
* Adobe Reader 11<br />
* [[Java]] SRE (e.g for [[Minecraft]])<br />
<br />
=== Rare (less common) ===<br />
<br />
* Gamespy<br />
* MIDI driver<br />
* ACDSee<br />
<br />
== Machine requirements ==<br />
<br />
It is not enough to just populate a prefix with the dependencies the game will need. The kernel itself has to have the substitution it will provide to the calls the game will make. As already mentioned, drivers and alternatives are available.<br />
<br />
=== Drivers ===<br />
<br />
* AMD drivers: see [[AMDGPU]].<br />
* Intel drivers: see [[Intel graphics]].<br />
* NVIDIA drivers: see [[NVIDIA]].<br />
<br />
=== Dependency for the machine & substitutes ===<br />
<br />
{{Note|This is mostly informative. Some of these packages install themselves once you install the major ones.}}<br />
<br />
* [[Wine]]<br />
* {{Pkg|wine-gecko}}<br />
* {{Pkg|wine-mono}}<br />
* [[Vulkan]]<br />
* [[OpenGL]]<br />
* [[Proton]] Redistributables (optional, but it may help)<br />
* {{AUR|wine-ge-custom}} or [https://github.com/Tk-Glitch/PKGBUILDS/tree/master/wine-tkg-git TKG] (optional, unless unsuccessful) : specially compiled wine versions containing patches for certain games.<br />
<br />
== Game environments ==<br />
<br />
Wine/Proton are not the only approaches to play games. Different environments exist to play games in Linux, and have just as many (or more) games than on Windows:<br />
<br />
* Native – games which have builds targeting the Linux platform, shipping with OpenGL and/or Vulkan graphics API support.<br />
* [[Wikipedia:Emulator|Emulator]]s – required for running software designed for other architectures and systems. Most games run out of the box once the ROM is fed in to the emulator and issues are rarely encountered. For options, see [[Video game platform emulators]].<br />
* [[Java]] - write once, run everywhere platform. Examples of popular games that run on Linux are [[Minecraft]], [[RuneScape|Runescape]], [[Wikipedia:Wurm_Online|Wurm Online]], [[Wikipedia:Puzzle_Pirates|Puzzle Pirates]].<br />
* Web – games running in a web browser.<br />
** HTML5 games use canvas and WebGL technologies and work in all modern browsers.<br />
** [[Flash]]-based – you need to install the plugin to play.<br />
* [[Wine]] – Windows compatibility layer, allows to run Windows applications (and a lot of games) on Unix-like operating systems. Supports DirectX to Vulkan translation in runtime with the addition of [[Wine#DXVK]], which improves performance in games which only support DirectX.<br />
* [[Virtual machine]]s – can be used to install compatible operating systems (such as Windows). [[VirtualBox]] has good 3D support. As an extension of this, if you have compatible hardware you can consider VGA passthrough to a Windows KVM guest, keyword is [https://docs.kernel.org/driver-api/vfio.html "virtual function I/O" (VFIO)], or [[PCI passthrough via OVMF]].<br />
* [https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561 Proton/DXVK] – Fork of Wine designed for use in the proprietary {{Pkg|steam}} platform, enabling better support for games than Wine. See [[Steam#Proton Steam-Play]] for more information. <br />
<br />
== Game compatibility ==<br />
<br />
=== Increase vm.max_map_count ===<br />
<br />
Having the default {{ic|vm.max_map_count}} size limit of 65530 maps can be too little for some games [https://www.phoronix.com/news/Fedora-39-VM-Max-Map-Count]. Therefore increase the size permanently by creating the [[sysctl]] config file:<br />
<br />
{{hc|/etc/sysctl.d/80-gamecompatibility.conf|2=<br />
vm.max_map_count = 2147483642<br />
}}<br />
<br />
Apply the changes without reboot by running:<br />
<br />
# sysctl --system<br />
<br />
{{Note|This can lead to incompatibility with older programs trying to read core dump files [https://github.com/torvalds/linux/blob/v5.18/include/linux/mm.h#L178].}}<br />
<br />
== Getting games ==<br />
<br />
Just because games are available for Linux does not mean that they are native; they might be pre-packaged with [[Wine]] or [[DOSBox]].<br />
<br />
For list of games packaged for Arch in [[official repositories]] or the [[AUR]] see [[List of games]].<br />
<br />
* {{App|Athenaeum|A libre replacement to Steam.|https://gitlab.com/librebob/athenaeum|{{AUR|athenaeum-git}}}}<br />
* {{App|Flathub|Central [[Flatpak]] repository, has small but growing game section.|https://flathub.org/apps/category/Game|{{Pkg|flatpak}}, {{Pkg|discover}}, {{Pkg|gnome-software}}}}<br />
* {{App|[[Wikipedia:GOG.com|GOG.com]]|DRM-free game store.|https://www.gog.com|{{AUR|lgogdownloader}}, {{AUR|wyvern}}, {{AUR|minigalaxy}}}}<br />
* {{App|Heroic Games Launcher|A GUI for GOG and legendary, an open-source alternative for the Epic Games Launcher.|https://heroicgameslauncher.com/|{{AUR|heroic-games-launcher}}}}<br />
* {{App|[[Wikipedia:itch.io|itch.io]]|Indie game store.|https://itch.io|{{AUR|itch-setup-bin}}}}<br />
* {{App|Legendary|A free and open-source replacement for the Epic Games Launcher.|https://github.com/derrod/legendary|{{AUR|legendary}}}}<br />
* {{App|[[Wikipedia:Lutris|Lutris]]|Open gaming platform for Linux. Gets games from GOG, Steam, Battle.net, Origin, Uplay and many other sources. Lutris utilizes various [https://lutris.net/games game runners] to launch the games with fully customizable configuration options.|https://lutris.net|{{Pkg|lutris}}}}<br />
* {{App|Play.it|Automates the build of native packages. Also supports [[Wine]], [[DOSBox]] and ScummVM games.|https://www.dotslashplay.it/|{{AUR|play.it}}}}<br />
* {{App|Rare|Another GUI for legendary, based on PyQt5.|https://github.com/Dummerle/Rare|{{AUR|rare}}}}<br />
* {{App|[[Steam]]|Digital distribution and communications platform developed by Valve.|https://store.steampowered.com|{{Pkg|steam}}}}<br />
<br />
For Wine wrappers, see [[Wine#Third-party applications]].<br />
<br />
== Configuring games ==<br />
<br />
Certain games or game types may need special configuration to run or to run as expected. For the most part, games will work right out of the box in Arch Linux with possibly better performance than on other distributions due to compile time optimizations. However, some special setups may require a bit of configuration or scripting to make games run as smoothly as desired.<br />
<br />
=== Multi-screen setups ===<br />
<br />
Running a multi-screen setup may lead to problems with full-screen games. In such a case, [[#Starting games in a separate X server|running a second X server]] is one possible solution. For NVIDIA users, a solution may be found in [[NVIDIA#Gaming using TwinView]].<br />
<br />
=== Keyboard grabbing ===<br />
<br />
Many games grab the keyboard, noticeably preventing you from switching windows (also known as alt-tabbing).<br />
<br />
Some SDL games (e.g. Guacamelee) let you disable grabbing by pressing {{ic|Ctrl-g}}.<br />
<br />
{{Note|SDL is known to sometimes not be able to grab the input system. In such a case, it may succeed in grabbing it after a few seconds of waiting.}}<br />
<br />
=== Starting games in a separate X server ===<br />
<br />
In some cases like those mentioned above, it may be necessary or desired to run a second X server. Running a second X server has multiple advantages such as better performance, the ability to "tab" out of your game by using {{ic|Ctrl+Alt+F7}}/{{ic|Ctrl+Alt+F8}}, no crashing your primary X session (which may have open work on) in case a game conflicts with the graphics driver. The new X server will be akin a remote access login for the ALSA, so your user need to be part of the {{ic|audio}} group to be able to hear any sound.<br />
<br />
To start a second X server (using the free first person shooter game [https://www.xonotic.org/ Xonotic] as an example) you can simply do: <br />
<br />
$ xinit /usr/bin/xonotic-glx -- :1 vt$XDG_VTNR<br />
<br />
This can further be spiced up by using a separate X configuration file:<br />
<br />
$ xinit /usr/bin/xonotic-glx -- :1 -xf86config xorg-game.conf vt$XDG_VTNR<br />
<br />
A good reason to provide an alternative ''xorg.conf'' here may be that your primary configuration makes use of NVIDIA's Twinview which would render your 3D games like Xonotic in the middle of your multiscreen setup, spanned across all screens. This is undesirable, thus starting a second X with an alternative configuration where the second screen is disabled is advised. Please note, that the X configuration file location is relative to the {{ic|/etc/X11}} directory.<br />
<br />
A game starting script making use of Openbox for your home directory or {{ic|/usr/local/bin}} may look like this:<br />
<br />
{{hc|~/game.sh|<nowiki><br />
if [ $# -ge 1 ]; then<br />
game="$(which $1)"<br />
openbox="$(which openbox)"<br />
tmpgame="/tmp/tmpgame.sh"<br />
DISPLAY=:1.0<br />
echo -e "${openbox} &\n${game}" > ${tmpgame}<br />
echo "starting ${game}"<br />
xinit ${tmpgame} -- :1 -xf86config xorg-game.conf || exit 1<br />
else<br />
echo "not a valid argument"<br />
fi<br />
</nowiki>}}<br />
<br />
After making it [[executable]] you would be able to do:<br />
<br />
$ ~/game.sh xonotic-glx<br />
<br />
{{Note|If you want to avoid loading configs from {{ic|/etc/X11/xorg.conf.d}}, you should also use the {{ic|-configdir}} option, pointing to an empty directory.}}<br />
<br />
=== Adjusting mouse detections ===<br />
<br />
For games that require exceptional amount of mouse skill, adjusting the [[mouse polling rate]] can help improve accuracy.<br />
<br />
=== Binaural audio with OpenAL ===<br />
<br />
For games using [[Wikipedia:OpenAL|OpenAL]], if you use headphones you may get much better positional audio using OpenAL's [[Wikipedia:Head-related transfer function|HRTF]] filters. To enable, [[create]]:<br />
<br />
{{hc|~/.alsoftrc|2=<br />
hrtf = true<br />
}}<br />
<br />
Alternatively, install {{AUR|openal-hrtf}} from the AUR, and edit the options in {{ic|/etc/openal/alsoftrc.conf}}.<br />
<br />
For Source games, the ingame setting `dsp_slow_cpu` must be set to `1` to enable HRTF, otherwise the game will enable its own processing instead. You will also either need to set up Steam to use native runtime, or link its copy of openal.so to your own local copy. For completeness, also use the following options:<br />
<br />
dsp_slow_cpu 1 # Disable in-game spatialiazation<br />
snd_spatialize_roundrobin 1 # Disable spatialization 1.0*100% of sounds<br />
dsp_enhance_stereo 0 # Disable DSP sound effects. You may want to leave this on, if you find it does not interfere with your perception of the sound effects.<br />
snd_pitchquality 1 # Use high quality sounds<br />
<br />
=== Tuning PulseAudio ===<br />
<br />
If you are using [[PulseAudio]], you may wish to tweak some default settings to make sure it is running optimally.<br />
<br />
==== Enabling realtime priority and negative nice level ====<br />
<br />
Pulseaudio is built to be run with realtime priority, being an audio daemon. However, because of security risks of it locking up the system, it is scheduled as a regular thread by default. To adjust this, first make sure you are in the {{ic|audio}} group. Then, uncomment and edit the following lines in {{ic|/etc/pulse/daemon.conf}}:<br />
<br />
{{hc|1=/etc/pulse/daemon.conf|2=<br />
high-priority = yes<br />
nice-level = -11<br />
<br />
realtime-scheduling = yes<br />
realtime-priority = 5}}<br />
<br />
and restart pulseaudio.<br />
<br />
==== Using higher quality remixing for better sound ====<br />
<br />
PulseAudio on Arch uses speex-float-1 by default to remix channels, which is considered a 'medium-low' quality remixing. If your system can handle the extra load, you may benefit from setting it to one of the following instead:<br />
<br />
resample-method = speex-float-10<br />
<br />
==== Matching hardware buffers to Pulse's buffering ====<br />
<br />
Matching the buffers can reduce stuttering and increase performance marginally. See [https://forums.linuxmint.com/viewtopic.php?f=42&t=44862 here] for more details.<br />
<br />
== Remote gaming ==<br />
<br />
[[Wikipedia:Cloud gaming|Cloud gaming]] has gained a lot of popularity in the last few years, because of low client-side hardware requirements. The only important thing is stable internet connection (over the ethernet cable or 5 GHz WiFi recommended) with a minimum speed of 5–10 Mbit/s (depending on the video quality and framerate).<br />
<br />
See [[Gamepad#Gamepad over network]] for using a gamepad over a network with services that do not normally support this.<br />
<br />
{{Note|Most of the services that work in browser usually mean to be only compatible with {{AUR|google-chrome}}.}}<br />
<br />
{| class="wikitable sortable" style="text-align: center;"<br />
! Service<br />
! class="unsortable" | Installer<br />
! In browser client<br />
! Use your own host<br />
! Offers host renting<br />
! Full desktop support<br />
! Controller support<br />
! class="unsortable" | Remarks<br />
|-<br />
| [https://dixper.gg/ Dixper] || {{-}} || {{Yes}} || {{Y|Windows-only}} || ? || ? || ? || {{-}}<br />
|-<br />
| [https://reemo.io/ Reemo] || {{AUR|reemod-bin}} || {{Y|Chromium based only}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Y|Windows-only}} || You can also install the software with the official installation script in the download section via their website. <br />
|-<br />
| [https://xbox.com/play Xbox Cloud] || {{AUR|xbox-cloud-gaming}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{Yes}} || You need Game Pass Ultimate to be able to use XCloud.<br />
|-<br />
| [[GeForce Now]] || {{-}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || You must have games on Steam, Epic Client or GOG to use this service. Not all games are available.<br />
|-<br />
| [https://moonlight-stream.org/ Moonlight] || {{AUR|moonlight-qt}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || This is only a client. Host machine must use either GeForce Experience (windows only) or [https://github.com/SunshineStream/Sunshine Sunshine] (multiplatform).<br />
|-<br />
| [https://parsec.app/ Parsec] || {{AUR|parsec-bin}} || {{Yes}} (experimental) || {{Y|Windows-only}} || {{No}} || {{Yes}} || {{Yes}} || Cloud hosting [https://support.parsecgaming.com/hc/en-us/articles/360031038112-Cloud-Computer-Update no longer available]{{Dead link|2023|05|06|status=404}}<br />
|-<br />
| [https://github.com/mbroemme/vdi-stream-client VDI Stream Client] || {{AUR|vdi-stream-client}} || {{No}} || {{Y|Windows-only}} || {{No}} || {{Yes}} || {{No}} || VDI client with 3D GPU acceleration and built-in USB redirection<br />
|-<br />
| [https://playkey.net/ Playkey] || {{AUR|playkey-linux}} || ? || ? || ? || ? || ? || {{-}}<br />
|-<br />
| style="white-space:nowrap" | [https://www.playstation.com/en-gb/ps-now/ps-now-on-pc/ PlayStation Now] || Runs under [[Wine]] or [[Steam]]'s proton || {{No}} || {{No}} || {{-}} || {{No}} || {{Yes}} || Play PS4, PS3 and PS2 games on PC. Alternatively, you can use [[Video game platform emulators|emulators]].<br />
|-<br />
| style="white-space:nowrap" | [https://www.playstation.com/en-us/remote-play/ PlayStation Remote Play] || {{AUR|chiaki}} || {{No}} || {{Yes}} || {{-}} || {{Yes}} || {{Yes}} || Play games from your PS4 and/or PS5 on PC.<br />
|-<br />
| [https://rainway.com/ Rainway] || Coming in 2019 Q3 || {{Yes}} || {{Y|Windows-only}} || {{No}} || {{Yes}} || ? || {{-}}<br />
|-<br />
| [https://shadow.tech/ Shadow] || '''Stable:''' {{AUR|shadow-tech}} <br> '''Beta''': {{AUR|shadow-beta}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || Controller support is dependent on USB over IP, and currently AVC only as HEVC is not supported<br />
|-<br />
| [[Steam#Steam Remote Play|Steam Remote Play]] || Part of {{pkg|steam}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{-}}<br />
|-<br />
|-<br />
| [https://stadia.google.com Stadia] || {{-}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || Service is shutting down on 18/01/2023<br />
|-<br />
| [https://vortex.gg/ Vortex] || {{-}} || {{Yes}} || {{No}} || {{-}} || {{No}} || ? || {{-}}<br />
|-<br />
| [[VNC]] || {{pkg|tigervnc}} or {{pkg|x11vnc}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} || General purpose remote desktop protocol, but the latency should be low enough to use it for gaming over a LAN. See [[Gamepad#Gamepad over network]] for gamepad support.<br />
|-<br />
| [[xrdp]] || {{AUR|xrdp}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} || Another general purpose remote desktop protocol, has both OpenGL and Vulkan support after configuring [[xrdp#Graphical acceleration|graphical accleration]]. Recommended for gaming over a LAN. See [[Gamepad#Gamepad over network]] for gamepad support.<br />
|-<br />
| [[X11 forwarding]] || {{pkg|openssh}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || X forwarding over SSH with [[VirtualGL]] supports OpenGL and works for some but not all games. See [[Gamepad#Gamepad over network]] for gamepad support.<br />
|-<br />
| [https://boosteroid.com/ Boosteroid] || {{AUR|boosteroid}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || You must have games on a digital distribution platform (Steam, EGS, Origin, etc.) to use this service. Not all games are available. You need to sign up (free) to see the full list of games. You need to purchase a subscription, to launch the games you own on the digital distribution platform.<br />
|-<br />
| [https://www.blacknut.com/ Blacknut] || {{AUR|blacknut-appimage}} or [https://www.blacknut.com/en/download/linux Blacknut AppImage] || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || You need a subscription to be able to use this service. Not all games are available.<br />
|}<br />
<br />
== Improving performance ==<br />
<br />
See also main article: [[Improving performance]]. For Wine programs, see [[Wine#Performance]]. For a good gaming experience low latency, a consistent response time (no jitter) and enough throughput (frames per second) are needed.<br />
If you have multiple sources with a little jitter they are likely to overlap sometimes and produce noticeable stutter. Therefore most of the time it is preferable to decrease the throughput a little to gain more response time consistency.<br />
<br />
=== Improve clock_gettime throughput ===<br />
<br />
User space programs and especially games do many calls to {{man|2|clock_gettime}} to get the current time for calculating game physics, fps and so on. The time usage can be seen by running <br />
<br />
# perf top<br />
<br />
and looking at the overhead of read_hpet (or acpi_pm_read).<br />
<br />
If you are not dependent on a very precise timer you can switch from hpet (high precision event timer) or acpi_pm (ACPI Power Management Timer) to the faster TSC (time stamp counter) timer. Add the [[kernel parameters]] <br />
<br />
tsc=reliable clocksource=tsc<br />
<br />
to make TSC available and enable it. After that reboot and confirm the clocksource by running <br />
<br />
# cat /sys/devices/system/clocksource/clocksource*/current_clocksource<br />
<br />
You can see all currently available timers by running<br />
<br />
# cat /sys/devices/system/clocksource/clocksource*/available_clocksource<br />
<br />
and change between them by echoing one into current_clocksource. On a Zen 3 system benchmarking with [https://gist.github.com/weirddan455/eb807fa48915652abeca3b6421970ab4] shows a ~50 times higher throughput of {{ic|tsc}} compared to {{ic|hpet}} or {{ic|acpi_pm}}.<br />
<br />
=== Tweaking kernel parameters for response time consistency ===<br />
<br />
You can install the realtime kernel to get some advantages by default (see [[realtime kernel]] article) but it costs CPU throughput and can delay interrupt handling. Additionally the realtime kernel is not compatible with {{Pkg|nvidia-open-dkms}} and does not change the scheduler for SCHED_NORMAL (also named SCHED_OTHER) processes, which is the default process scheduling type. The following kernel parameter changes improve the response time consistency for the realtime kernel as well as other kernels such as the default linux kernel:<br />
<br />
Disable proactive compaction because it introduces jitter according to [https://docs.kernel.org/admin-guide/sysctl/vm.html kernel documentation]:<br />
<br />
# echo 0 > /proc/sys/vm/compaction_proactiveness<br />
<br />
If you have enough free RAM increase the number of minimum free Kilobytes to avoid stalls on memory allocations: [http://highscalability.com/blog/2015/4/8/the-black-magic-of-systematically-reducing-linux-os-jitter.html][https://docs.kernel.org/admin-guide/sysctl/vm.html]. Do not set this below 1024 KB or above 5% of your systems memory. Reserving 1GB:<br />
<br />
# echo 1048576 > /proc/sys/vm/min_free_kbytes<br />
<br />
Avoid swapping (locking pages that introduces latency and uses disk IO) unless the system has no more free memory:<br />
<br />
# echo 10 > /proc/sys/vm/swappiness<br />
<br />
Enable Multi-Gen Least Recently Used (MGLRU) but reduce the likelihood of lock contention at a minor performance cost [https://docs.kernel.org/admin-guide/mm/multigen_lru.html]:<br />
<br />
# echo 5 > /sys/kernel/mm/lru_gen/enabled<br />
<br />
Disable zone reclaim (locking and moving memory pages that introduces latency spikes):<br />
<br />
# echo 0 > /proc/sys/vm/zone_reclaim_mode<br />
<br />
Disable Transparent Hugepages (THP). Even if defragmentation is disabled, THPs might introduce latency spikes. [https://docs.kernel.org/admin-guide/mm/transhuge.html][https://alexandrnikitin.github.io/blog/transparent-hugepages-measuring-the-performance-impact/] <br />
<br />
{{bc|<br />
# echo never > /sys/kernel/mm/transparent_hugepage/enabled<br />
# echo never > /sys/kernel/mm/transparent_hugepage/shmem_enabled<br />
# echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag<br />
}}<br />
<br />
Note that if your game uses TCMalloc (e.g., Dota 2 and CS:GO) then it is not recommended to disable THP as it comes with a large performance cost [https://github.com/google/tcmalloc/blob/master/docs/tuning.md#system-level-optimizations]. Instead if you enable THP, you might also want to enable proactive compaction [https://nitingupta.dev/post/proactive-compaction/]. <br />
<br />
Reduce the maximum page lock acquisition latency while retaining adequate throughput [https://www.phoronix.com/review/linux-59-unfairness][https://openbenchmarking.org/result/2009154-FI-LINUX58CO57&sro][https://www.phoronix.com/review/linux-59-fairness]:<br />
<br />
# echo 1 > /proc/sys/vm/page_lock_unfairness<br />
<br />
Tweak the scheduler settings. The following scheduler settings are in conflict with {{AUR|cfs-zen-tweaks}} so for each setting choose only one provider. By default the linux kernel scheduler is optimized for throughput and not latency. The following hand-made settings change that and are tested with different games to be a noticeable improvement. They might not be optimal for your use case; consider modifying them as necessary [https://access.redhat.com/solutions/177953][https://doc.opensuse.org/documentation/leap/tuning/html/book-tuning/cha-tuning-taskscheduler.html][https://www.amd.com/system/files/documents/58016-epyc-9004-tg-java.pdf#page=29]: <br />
<br />
{{bc|<br />
# echo 0 > /proc/sys/kernel/sched_child_runs_first<br />
# echo 1 > /proc/sys/kernel/sched_autogroup_enabled<br />
# echo 500 > /proc/sys/kernel/sched_cfs_bandwidth_slice_us<br />
# echo 1000000 > /sys/kernel/debug/sched/latency_ns<br />
# echo 500000 > /sys/kernel/debug/sched/migration_cost_ns<br />
# echo 500000 > /sys/kernel/debug/sched/min_granularity_ns<br />
# echo 0 > /sys/kernel/debug/sched/wakeup_granularity_ns<br />
# echo 8 > /sys/kernel/debug/sched/nr_migrate<br />
}}<br />
<br />
==== Make the changes permanent ====<br />
<br />
Usually, the advice for permanently setting [[kernel parameters]] is to configure create a [[sysctl]] configuration file or change your [[boot loader]] options. However, since our change span both procfs ({{ic|/proc}}, containing sysctl) and sysfs ({{ic|/sys}}), the most convenient way is to use [[systemd-tmpfiles]]:<br />
<br />
{{hc|/etc/tmpfiles.d/consistent-response-time-for-gaming.conf|<br />
# Path Mode UID GID Age Argument<br />
w /proc/sys/vm/compaction_proactiveness - - - - 0<br />
w /proc/sys/vm/min_free_kbytes - - - - 1048576<br />
w /proc/sys/vm/swappiness - - - - 10<br />
w /sys/kernel/mm/lru_gen/enabled - - - - 5<br />
w /proc/sys/vm/zone_reclaim_mode - - - - 0<br />
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never<br />
w /sys/kernel/mm/transparent_hugepage/shmem_enabled - - - - never<br />
w /sys/kernel/mm/transparent_hugepage/khugepaged/defrag - - - - 0<br />
w /proc/sys/vm/page_lock_unfairness - - - - 1<br />
w /proc/sys/kernel/sched_child_runs_first - - - - 0<br />
w /proc/sys/kernel/sched_autogroup_enabled - - - - 1<br />
w /proc/sys/kernel/sched_cfs_bandwidth_slice_us - - - - 500<br />
w /sys/kernel/debug/sched/latency_ns - - - - 1000000<br />
w /sys/kernel/debug/sched/migration_cost_ns - - - - 500000<br />
w /sys/kernel/debug/sched/min_granularity_ns - - - - 500000<br />
w /sys/kernel/debug/sched/wakeup_granularity_ns - - - - 0<br />
w /sys/kernel/debug/sched/nr_migrate - - - - 8<br />
}}<br />
<br />
After that reboot and see if the values applied correctly.<br />
<br />
=== Load shared objects immediately for better first time latency ===<br />
<br />
Set the [[environment variable]]<br />
<br />
LD_BIND_NOW=1<br />
<br />
for your games, to avoid needing to load program code at run time (see {{man|8|ld.so}}), leading to a delay the first time a function is called. Do not set this for ''startplasma-x11'' or other programs that link in libraries that do not actually exist on the system anymore and are never called by the program. If this is the case, the program fails on startup trying to link a nonexistent shared object, making this issue easily identifiable. Most games should start fine with this setting enabled.<br />
<br />
=== Utilities ===<br />
<br />
==== Gamemode ====<br />
<br />
[[Gamemode]] is daemon and library combo that allows games to request a set of optimisations be temporarily applied to the host OS. This can improve game performance.<br />
<br />
==== Gamescope ====<br />
<br />
[[Gamescope]] is a microcompositor from Valve that is used on the Steam Deck. Its goal is to provide an isolated compositor that is tailored towards gaming and supports many gaming-centric features.<br />
<br />
=== ACO compiler ===<br />
<br />
{{Note|The method shown below '''only''' works on AMD GPUs running the '''[[AMDGPU]]''' drivers.}}<br />
See [[AMDGPU#ACO compiler]]<br />
<br />
=== Reducing DRI latency ===<br />
<br />
Direct Rendering Infrastructure (DRI) Configuration Files apply for all DRI drivers including Mesa and Nouveau. You can change the DRI configuration systemwide in {{ic|/etc/drirc}} or per user in {{ic|$HOME/.drirc}}. If they do not exist, you have to create them first. Both files use the same syntax; documentation for these options can be found at https://dri.freedesktop.org/wiki/ConfigurationOptions/. To reduce input latency by disabling synchronization to vblank, add the following:<br />
<br />
<driconf><br />
<device><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
</driconf><br />
<br />
=== Improving frame rates and responsiveness with scheduling policies ===<br />
<br />
Most games can benefit if given the correct scheduling policies for the kernel to prioritize the task. These policies should ideally be set per-thread by the application itself.<br />
<br />
For programs which do not implement scheduling policies on their own, application known as {{Pkg|schedtool}}, and its associated daemon {{AUR|schedtoold}} can handle many of these tasks automatically.<br />
<br />
To edit what programs relieve what policies, simply edit {{ic|/etc/schedtoold.conf}} and add the program followed by the ''schedtool'' arguments desired.<br />
<br />
==== Policies ====<br />
<br />
{{ic|SCHED_ISO}} (only implemented in BFS/MuQSSPDS schedulers found in -pf and -ck [[kernel]]s) – will not only allow the process to use a maximum of 80 percent of the CPU, but will attempt to reduce latency and stuttering wherever possible. Most if not all games will benefit from this:<br />
<br />
bit.trip.runner -I<br />
<br />
{{ic|SCHED_FIFO}} provides an alternative, that can even work better. You should test to see if your applications run more smoothly with {{ic|SCHED_FIFO}}, in which case by all means use it instead. Be warned though, as {{ic|SCHED_FIFO}} runs the risk of starving the system! Use this in cases where -I is used below:<br />
<br />
bit.trip.runner -F -p 15<br />
<br />
==== Nice levels ====<br />
<br />
Secondly, the nice level sets which tasks are processed first, in ascending order. A nice level of -4 is recommended for most multimedia tasks, including games:<br />
<br />
bit.trip.runner -n -4<br />
<br />
==== Core affinity ====<br />
<br />
There is some confusion in development as to whether the driver should be multithreading, or the program. Allowing both the driver and program to simultaneously multithread can result in significant performance reductions, such as framerate loss and increased risk of crashes. Examples of this include a number of modern games, and any Wine program which is running with [[Wikipedia:OpenGL Shading Language|GLSL]] enabled. To select a single core and allow only the driver to handle this process, simply use the {{ic|-a 0x''#''}} flag, where ''#'' is the core number, e.g.:<br />
<br />
bit.trip.runner -a 0x1<br />
<br />
uses first core.<br />
<br />
Some CPUs are hyperthreaded and have only 2 or 4 cores but show up as 4 or 8, and are best accounted for:<br />
<br />
bit.trip.runner -a 0x5<br />
<br />
which use virtual cores 0101, or 1 and 3.<br />
<br />
==== General case ====<br />
<br />
For most games which require high framerates and low latency, usage of all of these flags seems to work best. Affinity should be checked per-program, however, as most native games can understand the correct usage.<br />
For a general case:<br />
<br />
bit.trip.runner -I -n -4<br />
Amnesia.bin64 -I -n -4<br />
hl2.exe -I -n -4 -a 0x1 #Wine with GLSL enabled<br />
<br />
etc.<br />
<br />
==== Optimus, and other helping programs ====<br />
<br />
As a general rule, any other process which the game requires to operate should be reniced to a level above that of the game itself. Strangely, Wine has a problem known as ''reverse scheduling'', it can often have benefits when the more important processes are set to a higher nice level. Wineserver also seems unconditionally to benefit from {{ic|SCHED_FIFO}}, since it rarely consumes the whole CPU and needs higher prioritization when possible.<br />
<br />
optirun -I -n -5<br />
wineserver -F -p 20 -n 19<br />
steam.exe -I -n -5<br />
<br />
== Peripherals ==<br />
<br />
=== Mouse ===<br />
<br />
You might want to set your [[mouse acceleration]] to control your mouse more accurately.<br />
<br />
If your mouse has more than 3 buttons, you might want to see [[Mouse buttons]].<br />
<br />
If you are using a gaming mouse (especially Logitech and Steelseries) you may want to configure your mouse [[mouse polling rate|polling rate]], DPI, LEDs etc. using {{Pkg|piper}}. See [https://github.com/libratbag/libratbag/tree/master/data/devices this page] for a full list of supported devices by piper. Alternatively {{Pkg|solaar}} for logitech devices.<br />
<br />
=== LEDs ===<br />
<br />
You can change and manipulate various RGBs with {{AUR|openrgb}}, for a list of currently supported devices see [https://openrgb.org/devices_0.9.html]<br />
<br />
== See also ==<br />
<br />
* [https://www.reddit.com/r/linux_gaming/ linux_gaming] - Forum on reddit.com with gaming on linux as its topic, subpages: [https://www.reddit.com/r/linux_gaming/wiki/index Wiki], [https://www.reddit.com/r/linux gaming/wiki/faq FAQ].<br />
* [https://github.com/AdelKS/LinuxGamingGuide Linux Gaming Guide] - Compilation of different techniques for optimizing the Linux gaming experience.<br />
* [https://areweanticheatyet.com/ are we anti cheat yet] A comprehensive and crowd-sourced list of games using anti-cheats and their compatibility with GNU/Linux or Wine/Proton.<br />
* [https://www.protondb.com/ proton db] crowdsourced Linux compatibility reports</div>Hasardeurhttps://wiki.archlinux.org/index.php?title=Mnemosyne&diff=727052Mnemosyne2022-04-20T08:18:01Z<p>Hasardeur: Updated Python version: Mnemosyne is Python 3 based by now.</p>
<hr />
<div>[[Category:Applications]]<br />
[[ja:Mnemosyne]]<br />
[https://mnemosyne-proj.org Mnemosyne] is an open-source, cross-platform flashcard program that <br />
uses a [[wikipedia:Spaced_repetition|spaced repetition]] algorithm for maximizing learning efficiency.<br />
<br />
It is inspired by the proprietary [https://www.supermemo.com SuperMemo] and comparable to [[Anki]], but with a stronger focus on a minimalist, distraction-free UI and simple but flexible work-flow.<br />
<br />
Mnemosyne is written in Python 3 and uses the [[Qt]] toolkit.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{AUR|mnemosyne}} package.<br />
<br />
=== Configuring ===<br />
<br />
Most of the options in Mnemosyne are available directly in the user interface. A few infrequently-used options are accessible through a configuration file located at {{ic|~/.config/mnemosyne/config.py}}.<br />
<br />
==== Size of mathematical formulae ====<br />
<br />
If you would like to decrease the rendering resolution of mathematical formulae (default 200 dpi, which is rather large on most screens) to better fit with normal text, open the file {{ic|~/.config/mnemosyne/config.py}} and decrease the number following the {{ic|-D}} option in the line that looks like:<br />
dvipng = "dvipng -D 200 -T tight tmp.dvi"<br />
<br />
== Other Resources ==<br />
<br />
The Mnemosyne website offers:<br />
* Official [https://mnemosyne-proj.org/help/index.php documentation]<br />
* User-contributed [https://mnemosyne-proj.org/scripts-and-plugins plugins]<br />
* User-contributed sets of cards<br />
<br />
== See Also ==<br />
<br />
* [[Anki]] - another open-source flashcard program using spaced repetition</div>Hasardeurhttps://wiki.archlinux.org/index.php?title=KDE&diff=719552KDE2022-02-21T00:43:54Z<p>Hasardeur: Add "Out of date"-notice for kwin-lowlatency, as the project is unmaintained, as stated on the GitHub project page.</p>
<hr />
<div>[[Category:KDE]]<br />
[[de:KDE]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[ja:KDE]]<br />
[[ko:KDE]]<br />
[[pt:KDE]]<br />
[[ru:KDE]]<br />
[[zh-hans: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|Official repositories#kde-unstable}}<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. If you are an [[NVIDIA]] user, also install {{Pkg|egl-wayland}}, and if the session does not start with the proprietary {{Pkg|nvidia}} driver, also enable the [[NVIDIA#DRM kernel mode setting|DRM kernel mode setting]]. If that does not work, too, check the instructions on the [https://community.kde.org/Plasma/Wayland/Nvidia KDE wiki].<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. If you only want KDE applications for a certain category such as games or education, install the relevant dependency of {{Pkg|kde-applications-meta}}. Note that this will only install applications, it will not install any version of Plasma.<br />
<br />
=== Unstable releases ===<br />
<br />
See [[Official repositories#kde-unstable]] for beta releases.<br />
<br />
== Starting Plasma ==<br />
<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 />
{{Tip|The preferred [[display manager]] is [[SDDM]].}}<br />
<br />
* Select ''Plasma (X11)'' to launch a new session in [[Xorg]].<br />
* 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|1=export DESKTOP_SESSION=plasma}} and {{ic|exec startplasma-x11}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]].<br />
* To start a Plasma on Wayland session from a console, run {{ic|1=XDG_SESSION_TYPE=wayland startplasma-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|systemsettings}}.<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 Plasma widgets. 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 customizations, like [[SDDM]] themes and splash-screens.<br />
<br />
====== GTK application appearance ======<br />
<br />
{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}<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}} as the GTK theme in ''System Settings > Application Style > Configure GNOME/GTK Application Style...''.<br />
<br />
{{Out of date|The Plasma GTKd background service overwrites GTK settings on Plasma startup.}}<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'' > ''Configure GNOME/GTK Application Style...'' > ''GTK2 theme:''. Numix-Frost-Light looks similar to Breeze.<br />
<br />
===== Faces =====<br />
<br />
Plasma and [[SDDM]] will both use images found at {{ic|/var/lib/AccountsService/icons/}} as users' avatars. To configure with a graphical interface, you can use ''System Settings > Users'', which may first need to be [[install]]ed (see the {{Pkg|plasma-desktop}} package). The file corresponding to your username can be removed to restore the default avatar.<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 />
Make the script [[executable]].<br />
<br />
The script can be run on login with ''Add Script'' in ''Autostart'':<br />
<br />
$ kcmshell5 autostart<br />
<br />
===== Display scaling / High DPI displays =====<br />
<br />
See [[HiDPI#KDE Plasma]].<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 />
=== Night Color ===<br />
<br />
Plasma provides a [[Redshift]]-like feature (working on both [[Xorg]] and [[Wayland]]) called Night Color. It makes the colors on the screen warmer to reduce eye strain at the time of your choosing. It can be enabled in ''System Settings > Display and Monitor > Night Color''.<br />
<br />
{{Tip|To have a handy System Tray on/off button for night color you need the {{Pkg|kdeplasma-addons}} and then you can add it.}}<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 the following packages {{Pkg|print-manager}}, {{Pkg|cups}}, {{Pkg|system-config-printer}}. 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 />
{{Tip|<br />
* An alternative package without [[NetworkManager]] and [[Bluez]] dependencies is provided by {{AUR|powerdevil-light}}.<br />
* An alternative package with [[Wikipedia:DDC/CI|DDC/CI]]-enabled [[backlight]] control for external monitors is provided by {{AUR|powerdevil-ddcutil}}.<br />
* Integration with [https://pointieststick.com/2021/07/23/this-week-in-kde-power-profiles-and-a-more-polished-kickoff/ power profiles] requires the [[power-profiles-daemon]] optional dependency. <br />
}}<br />
<br />
{{Accuracy|1=Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid=1649022#p1649022]}}<br />
<br />
{{Note|Power Devil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}<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 login scripts, a ''.desktop'' file launching the script 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 />
* Shell scripts previously placed in {{ic|~/.config/autostart-scripts/}} will get [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/736 automatically migrated to .desktop files].<br />
}}<br />
<br />
* Place [[Desktop entries]] (i.e. ''.desktop'' files) in the appropriate [[XDG Autostart]] directory.<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/plasma-workspace/shutdown/}}: for executing scripts when Plasma exits.<br />
<br />
See [https://docs.kde.org/trunk5/en/plasma-workspace/kcontrol/autostart/index.html official documentation].<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 />
=== Backup and restore ===<br />
<br />
KDE Plasma 5 stores personalized desktop settings as configuration files in the [[XDG Base Directory#Specification|XDG_CONFIG_HOME]] folder. Use the [https://github.com/shalva97/kde-configuration-files detail of configuration files] to select and choose a [https://www.addictivetips.com/ubuntu-linux-tips/backup-kde-plasma-5-desktop-linux/ method of backup and restore].<br />
<br />
=== systemd startup ===<br />
<br />
Plasma has introduced an optional new startup method which uses a [[systemd/User|systemd user]] instance to launch and manage all the Plasma services instead of the boot scripts. This is off by default, but can be [https://invent.kde.org/plasma/plasma-workspace/-/wikis/Plasma-and-the-systemd-boot enabled with the following command]:<br />
<br />
$ kwriteconfig5 --file startkderc --group General --key systemdBoot true<br />
<br />
To confirm the boot worked correctly you can run:<br />
<br />
$ systemctl --user status plasma-plasmashell.service<br />
<br />
More details about the implementation can be read in [https://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/ Edmundson's blog: plasma and the systemd startup].<br />
<br />
=== Spell checking ===<br />
<br />
KDE applications use {{Pkg|sonnet}} for spell checking. See its optional dependencies for the supported [[spell checker]]s.<br />
<br />
Configure it in ''System Settings > Regional Settings > Spell Check''.<br />
<br />
=== Running kwin wayland on NVIDIA ===<br />
<br />
See https://community.kde.org/Plasma/Wayland/Nvidia.<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 Configuration Module for [[SDDM]].|https://invent.kde.org/plasma/sddm-kcm|{{Pkg|sddm-kcm}}}}<br />
* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://invent.kde.org/plasma/kde-gtk-config|{{Pkg|kde-gtk-config}}}}<br />
* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://invent.kde.org/system/polkit-kde-kcmodules-1|{{AUR|kcm-polkit-kde-git}}}}<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 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 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|kde-pim}} package group or the {{Pkg|kde-pim-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'' -E UTF8 --locale=C -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 />
{{Warning|Using the SQLite backend is not recommended and should be avoided.[https://invent.kde.org/pim/akonadi/-/blob/master/INSTALL#L37]}}<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 />
{{Out of date|The ''telegram-purple'' project is [https://github.com/majn/telegram-purple#this-project-is-abandoned-see-instead-tdlib-purple abandoned]. See also [[Special:Diff/704779|Diff/704779]]. As mentioned in the previous links, {{AUR|telegram-tdlib-purple-git}} is its successor package.}}<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}}.<br />
<br />
Sometimes, KDE Connect will not detect a phone. You can restart the services by running {{ic|killall kdeconnectd}} and then opening kdeconnect in system settings or running {{ic|kdeconnect-cli --refresh}} followed by {{ic|kdeconnect-cli -l}}.<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. The instructions are available on the KDE UserBase Wiki—[https://userbase.kde.org/Tutorials/Using_Other_Window_Managers_with_Plasma Tutorials/Using Other Window Managers with Plasma].<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 [[picom]].<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 />
{{Out of date|[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] is currently (February 2022) unmaintained/abandoned and will not work with Plasma 5.24.}}<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 />
=== IBus Integration ===<br />
<br />
[[IBus]] is an [[Input method#Input method framework|input method framework]] and can be integrated into KDE. See [[IBus#Integration]] for details.<br />
<br />
Using [[IBus]] may be required when using KDE on [[Wayland]] to offer accented characters and dead keys support [https://bugs.kde.org/show_bug.cgi?id=411729].<br />
<br />
=== Enable hotspot in plasma-nm ===<br />
<br />
See [[NetworkManager#Sharing internet connection over Wi-Fi]].<br />
<br />
=== Restore previous saved session ===<br />
<br />
If you have ''System Settings > Startup and Shutdown > Desktop Session > When logging in: Restore previous saved session'' (default) selected, ksmserver (KDE's session manager) will automatically save/load all open applications to/from {{ic|~/.config/ksmserverrc}} on logout/login.<br />
<br />
{{Note|Currently, native Wayland windows cannot be restored. See [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] for the current state of development.}}<br />
<br />
=== Receive local mail in KMail ===<br />
<br />
If you have set up local mail delivery with a [[mail server]] that uses the [[Wikipedia:Maildir|Maildir]] format, you may want to receive this mail in KMail. To do so, you can re-use KMail's default receiving account "Local Folders" that stores mail in {{ic|~/.local/share/local-mail/}}.<br />
<br />
Symlink the {{ic|~/Maildir}} directory (where Maildir format mail is commonly delivered) to the Local Folders' inbox:<br />
<br />
$ ln -s .local/share/local-mail/inbox ~/Maildir<br />
<br />
Alternatively, add a new receiving account with the type ''Maildir'' and set {{ic|~/Maildir}} as its directory.<br />
<br />
=== Configure Plasma for all users ===<br />
<br />
Edit {{ic|config/main.xml}} files in the {{ic|/usr/share/plasma}}. For example, to configure the Application Launcher for all users, edit {{ic|/usr/share/plasma/plasmoids/org.kde.plasma.kickoff/contents/config/main.xml}}. To prevent the files from being overwritten with package updates, add the files to [[Pacman#Skip_file_from_being_upgraded|Pacman's NoUpgrade]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== qt5ct and kvantum bugs after upgrade ===<br />
<br />
{{Out of date|This was added 2021-02-15 : the "latest update" is one year old, is this fixed ?}}<br />
<br />
Latest update might cause incompatible HiDPI scaling that made some interfaces becomes too big for your screen, some icons are missing or can not be displayed, and missing panels or widgets.<br />
<br />
Try to remove {{Pkg|qt5ct}} and {{Pkg|kvantum}} related package, then apply default global Plasma theme. If the problem persists, try clearing all your KDE configuration and reinstalling {{Grp|plasma}} to overwrite the configuration. Be sure to check HiDPI scaling in KDE system settings as well.<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 />
==== Plasma desktop does not respect locale/language settings ====<br />
<br />
Plasma desktop may use different settings than you set at KDE System Settings panel, or in {{ic|locale.conf}} (per [[Locale#Variables]]). First thing to do is log out and log in after removing {{ic|~/.config/plasma-localerc}}, if this does not fix the issue, try to edit the file manually. For example, to set {{ic|LANG}} variable to {{ic|es_ES.UTF-8}} and the {{ic|LC_MESSAGES}} variable to {{ic|en_US.UTF-8}}:<br />
<br />
{{hc|~/.config/plasma-localerc|2=<br />
[Formats]<br />
LANG=es_ES.UTF-8<br />
<br />
[Translations]<br />
LANGUAGE=en_US<br />
}}<br />
<br />
==== Cannot change theme, icons, fonts, colors in systemsettings; most icons are not displayed ====<br />
<br />
Make sure that {{ic|QT_QPA_PLATFORMTHEME}} [[environment variable]] is unset, the command {{ic|printenv QT_QPA_PLATFORMTHEME}} should show empty output. Otherwise if you had an environment set (most likely qt5ct) the variable will force qt5ct settings upon Qt applications, the command {{ic|1=export QT_QPA_PLATFORMTHEME=}} should unset the environment.<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 />
==== Missing panels/widgets ====<br />
<br />
A crash or hardware change can modify the screen numbers, even on a single monitor setup. The panels/widgets can be missing after such an event, this can be fixed in the {{ic|~/.config/plasma-org.kde.plasma.desktop-appletsrc}} file by changing the {{ic|lastScreen}} values.<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 />
==== Cursor jerking/flicking when changing roles (e.g., when mousing over hyperlinks) ====<br />
<br />
Try installing the appropriate 2D acceleration driver for your system and window manager.<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}} as an attempt to get clear icons.<br />
<br />
==== Cannot change screen resolution when running in a virtual machine ====<br />
<br />
When running Plasma in a [[VMware]], [[VirtualBox]] or [[QEMU]] virtual machine, kscreen may not allow changing the guest's screen resolution to a resolution higher than 800×600.<br />
<br />
The workaround is to set the {{ic|PreferredMode}} option in {{man|5|xorg.conf.d}}. Alternatively try using a different graphics adapter in the VM, e.g. VBoxSVGA instead of VMSVGA for VirtualBox and Virtio instead of QXL for QEMU. See [https://bugs.kde.org/show_bug.cgi?id=407058 KDE Bug 407058] for details.<br />
<br />
==== Dolphin, Kate, etc. stuck long time when opening ====<br />
<br />
Check whether your user directories ({{ic|Documents}}, {{ic|Downloads}}, etc.) are read-only.<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://userbase.kde.org/KMail/FAQs_Hints_and_Tips#Clean_start_after_a_failed_migration] for details.<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 />
=== Kmail, Kontact and Wayland ===<br />
<br />
Kmail may become unresponsive, show a black messageviewer or similar, often after having been minimized and restored. A workaround may be to set [[environment variable]] {{ic|1=QT_QPA_PLATFORM="xcb;wayland"}}. See [https://bugs.kde.org/show_bug.cgi?id=397825 KDE Bug 397825].<br />
<br />
=== Unlock widgets (Plasma ≥ 5.18) ===<br />
<br />
If you previously locked your widgets, you will probably find yourself unable to unlock them again.<br />
You just have to run this command to do so:<br />
<br />
$ qdbus org.kde.plasmashell /PlasmaShell evaluateScript "lockCorona(false)"<br />
<br />
The new {{ic|Customize Layout}} does not require to lock them back up but if want to do that:<br />
<br />
$ qdbus org.kde.plasmashell /PlasmaShell evaluateScript "lockCorona(true)"<br />
<br />
=== KIO opens URLs with error programs ===<br />
<br />
{{Style|The language in this section could use some improvements for clarity and grammar (mostly in regards to the first sentence and section heading).}}<br />
<br />
KIO had cached webpages and will try use cached files. Check file associations regarding html, php, etc. and change it to a browser. KIO's cache files are located in {{ic|$HOME/.cache/kioexec}}. See also [[xdg-utils#URL scheme handlers]].<br />
<br />
=== Custom Shortcuts tab is missing under Shortcuts in System Settings ===<br />
<br />
This is due to the {{Pkg|khotkeys}} package being missing. After installation, a restart of the System Settings application may be necessary to apply the changes.<br />
<br />
=== Lock the screen before suspending and hibernating ===<br />
<br />
In the System Settings application, KDE offers a setting to automatically lock the screen after waking up from sleep. Upon resuming, [https://www.reddit.com/r/kde/comments/obnpeb/how_to_lock_system_before_suspend/ some users] report that the screen is briefly showed before unlocking. To prevent this behavior and have KDE lock the screen before suspending, create a hook in {{man|1|systemd}} by creating the following file as the root user:<br />
<br />
{{hc|head=/usr/lib/systemd/system-sleep/lock_before_suspend.sh|output=#!/bin/bash<br />
<br />
case $1/$2 in<br />
pre/*)<br />
case $2 in<br />
suspend{{!}}hibernate)<br />
loginctl lock-session<br />
sleep 1 # necessary in order for the lock-session to complete before device is suspended. Lower value didn't allow for completion<br />
;;<br />
esac<br />
;;<br />
esac<br />
}}<br />
<br />
After creating the file, make it [[executable]]. <br />
<br />
Finally, make sure that the KDE setting is enabled by going to System Settings > Workspace Behavior > Screen Locking and checking the "After waking from sleep" checkbox.<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]<br />
* [https://community.kde.org/Matrix KDE Matrix Rooms]</div>Hasardeurhttps://wiki.archlinux.org/index.php?title=User_talk:Filam&diff=165011User talk:Filam2011-10-10T23:23:41Z<p>Hasardeur: Created page with "Hi. Thank you for the effort of revising the Privoxy article. English is not my is not my fist language so I am usually a bit off. There are a few articles I'd like to create (in..."</p>
<hr />
<div>Hi. Thank you for the effort of revising the Privoxy article. English is not my is not my fist language so I am usually a bit off. There are a few articles I'd like to create (in the near future), feel free to edit them if necessary. I don't mind, in fact I appreciate it. Hope to run into each other again. Take care.</div>Hasardeurhttps://wiki.archlinux.org/index.php?title=Privoxy&diff=164743Privoxy2011-10-09T10:52:29Z<p>Hasardeur: /* Installation and setup */ Text seemed to require you to edit /etc/privoxy/config and add "forward-socks5 / localhost:9050 ." -> That is wrong with nasty side effects. I revised the section a bit and linked to Tor.</p>
<hr />
<div>[[Category:Proxy servers (English)]]<br />
[[Category:Daemons and system services (English)]]<br />
{{i18n|Privoxy}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|This article will explain how to install and configure Privoxy alongside the [[Tor]] network.}}<br />
{{Article summary heading|Required software}}<br />
{{Article summary link|Tor|https://www.torproject.org/download/download.html.en}}<br />
{{Article summary link|Privoxy|http://www.privoxy.org/}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Tor}}<br />
{{Article summary wiki|Polipo}}<br />
{{Article summary end}}<br />
<br />
There might be some situations where you want to be completely anonymous while using Internet. One way to go about this is using Tor and Privoxy.<br />
<br />
==Introduction==<br />
'''Privoxy''' is a filtering proxy for the HTTP protocol, frequently used in combination with [[Tor]]. Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, filtering web page content, managing cookies, controlling access, and removing ads, banners, pop-ups, etc. It supports both stand-alone systems and multi-user networks.<br />
<br />
Using privoxy is necessary because browsers leak your DNS requests when they use a SOCKS proxy directly, which is bad for your anonymity.<br />
<br />
==Installation and setup==<br />
As root install the {{Codeline|privoxy}} package from {{Codeline|[community]}}.<br />
# pacman -S privoxy<br />
<br />
Privoxy is often used in conjunction with [[Tor]]. The information processed through Tor need to be handed over to Privoxy and vice versa. To set up such a chain forwarding rules need to be specified.<br />
<br />
Be advised: If you do not want to use Tor (or other proxys) there is no need to edit anything. In fact, chaining to an invalid target will prevent your browser from opening any website.<br />
<br />
Edit your {{filename|/etc/privoxy/config}} file and add this line at the end (be sure to include the . at the end and preserve the file owner and group as "privoxy"):<br />
forward-socks5 / localhost:9050 .<br />
This example refers to the Tor standard setup. If you changed the port adapt the example accordingly. <br />
The same basic rule is valid for other targets. If you plan on chaining to another proxy specify the method (here socks v5) and the port to suit your needs. Refer to section 5 of the manual inside {{filename|/etc/privoxy/config}} for a complete list of options and examples.<br />
<br />
Make sure your {{filename|/etc/hosts}} is correctly set up. By default in Arch, {{codeline|hostname}} has the name {{codeline|localhost}} but you need to make sure it has the name you used in your {{filename|/etc/rc.conf}}.<br />
<br />
E.g. in the Arch default {{filename|rc.conf}} HOSTNAME="myhost", so in {{filename|/etc/hosts}} it should be:<br />
#<ip-address> <hostname.domain.org> <hostname><br />
127.0.0.1 myhost.localdomain myhost localhost<br />
<br />
If you plan to make Privoxy available to other computers in your network, just add:<br />
listen-address [SERVER-IP]:[PORT]<br />
<br />
For example:<br />
<br />
listen-address 192.168.1.1:8118<br />
<br />
==Ad Blocking with Privoxy==<br />
Using an ad blocking extension in a web browser can increase page load time. Additionally, extensions like AdBlock Plus are not supported by all browsers. A useful alternative is to install system-wide ad blocking by setting a proxy address in your preferred browser.<br />
<br />
Once Privoxy has been installed download and install an AdBlock Plus easylist importer from [[AUR]] (i.e. [http://aur.archlinux.org/packages.php?ID=43861 privoxy-blocklist]). You can optionally use an [[AUR Helper]] to do so.<br />
<br />
==Usage==<br />
Start the Privoxy service:<br />
# rc.d start privoxy<br />
<br />
Add privoxy to your {{Codeline|DAEMONS}} array in {{filename|/etc/rc.conf}}<br />
DAEMONS=(... privoxy ...)<br />
<br />
Configure your program to use Privoxy. The default address is:<br />
localhost:8118<br />
<br />
For Firefox, go to:<br />
Preferences > Advanced > Network > Settings<br />
<br />
For Chromium you can use:<br />
<br />
$ chromium --proxy-server="localhost:8118"<br />
<br />
==Troubleshooting==<br />
If errors appear when accessing {{filename|/var/log/privoxy/}}, user can add the following after {{codeline|/bin/bash}} in {{filename|/etc/rc.d/privoxy}} and then restart privoxy.<br />
if [ ! -d /var/log/privoxy ] then<br />
mkdir /var/log/privoxy<br />
touch /var/log/privoxy/errorfile<br />
touch /var/log/privoxy/logfile<br />
chown -R privoxy:adm /var/log/privoxy<br />
fi<br />
<br />
==External Links==<br />
* [http://www.privoxy.org/ Office Website]<br />
* [http://thestegemans.com/archives/2011/06/03/blocking_ads_on_arch_linux_with_privoxy/ Blocking ads with Privoxy] by Mike Stegeman</div>Hasardeurhttps://wiki.archlinux.org/index.php?title=Dropbox&diff=164068Dropbox2011-10-05T17:23:43Z<p>Hasardeur: </p>
<hr />
<div>[[Category:Networking (English)]]<br />
[https://www.dropbox.com Dropbox] is a file sharing system that recently introduced a GNU/Linux client. Use it to transparently sync files across computers and architectures. Simply drop files into your {{Filename|~/Dropbox}} folder, and they will automatically sync to your centralized repository.<br />
<br />
==Installation==<br />
<br />
[http://aur.archlinux.org/packages.php?ID=23363 dropbox] can be installed from the [[AUR]]. Alternatively, [http://aur.archlinux.org/packages.php?ID=29432 dropbox-experimental] is also available.<br />
<br />
# After installing the package, you can start Dropbox from your application menu or run "dropboxd" from the command-line. The client icon will appear in the system tray.<br />
# Eventually a popup will ask you to log in to your Dropbox account or create a new account. Enter your credentials.<br />
# After some time you will see a "Welcome to Dropbox" popup, which will give you the opportunity to view a short tour of Dropbox.<br />
# Press the "Finish and go to My Dropbox".<br />
<br />
===Optional packages===<br />
<br />
*For a command-line interface, install [http://aur.archlinux.org/packages.php?ID=34310 dropbox-cli] from the [[AUR]].<br />
*For integration with Nautilus, install [http://aur.archlinux.org/packages.php?ID=19615 nautilus-dropbox] from the [[AUR]]. The Nautilus plugin will start Dropbox automatically.<br />
*For integration with Thunar, install [http://aur.archlinux.org/packages.php?ID=39214 thunar-dropbox] from the [[AUR]].<br />
*For KDE users, there is KDE client available: [http://aur.archlinux.org/packages.php?ID=41169 kfilebox] from [[AUR]].<br />
<br />
===Automatically Starting Dropbox===<br />
<br />
Dropbox can be automatically started by adding {{Codeline|dropboxd}} to {{Filename|~/.xinitrc}} (or {{Filename|autostart.sh}}, depending on your setup). Alternatively, you can [[#Daemon|start it as a daemon]].<br />
<br />
== Alternative to install: use the web interface ==<br />
<br />
If all you need is basic access to the files in your Dropbox, you can use the web interface at http://dropbox.com to upload and download files to your Dropbox. This can be a viable alternative to running a Dropbox daemon and mirroring all the files on your own machine.<br />
<br />
==Daemon==<br />
<br />
To run Dropbox as a daemon like {{Codeline|sshd}} or {{Codeline|vsftpd}}, simply do one of the following:<br />
<br />
===dropboxd-userspace Method===<br />
<br />
Install [http://aur.archlinux.org/packages.php?ID=47670 dropboxd-userspace],<br />
configure your username in {{Filename|/etc/conf.d/dropboxd-userspace.conf}}<br />
<br />
This allows you to start or stop Dropbox just like any other service. Place {{Codeline|dropboxd-userspace}} in the DAEMONS array in {{Filename|/etc/rc.conf}} for it to start at boot.<br />
<br />
# /etc/rc.d/dropboxd-userspace start<br />
# /etc/rc.d/dropboxd-userspace stop<br />
# /etc/rc.d/dropboxd-userspace restart<br />
<br />
And in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(... '''@dropboxd-userspace''' ...)<br />
<br />
===Manual Method===<br />
<br />
As root, copy this into a file called {{Filename|/etc/rc.d/dropboxd}} and set USER to your username.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
USER=yourusername<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
PID=`pidof -o %PPID /opt/dropbox/dropbox`<br />
<br />
case "$1" in<br />
start)<br />
stat_busy "Starting Dropbox Service"<br />
LANG=$LOCALE<br />
[ -z "$PID" ] && su -c "/usr/bin/dropboxd &" $USER<br />
if [ $? -gt 0 ]; then<br />
stat_fail<br />
else<br />
add_daemon dropboxd<br />
stat_done<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stopping Dropbox Service"<br />
[ ! -z "$PID" ] && kill $PID > /dev/null<br />
if [ $? -gt 0 ]; then<br />
stat_fail<br />
else<br />
rm_daemon dropboxd<br />
stat_done<br />
fi<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 3<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
Better Way:<br />
<pre><br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
USER=yourusername<br />
DROPBOXD_PATH='/usr/bin/dropboxd'<br />
DROPBOX_PATH='/opt/dropbox/dropbox'<br />
<br />
PID=`pidof -o %PPID $DROPBOX_PATH`<br />
<br />
case "$1" in<br />
start)<br />
stat_busy "Starting Dropbox Service"<br />
if [ $USER = 'yourusername' ]; then<br />
echo "Please edit /etc/rc.d/dropboxd' 'USER' before using this script."<br />
stat_fail<br />
else<br />
LANG=$LOCALE<br />
[ -z "$PID" ] && su -c "$DROPBOXD_PATH &" $USER<br />
if [ $? -gt 0 ]; then<br />
stat_fail<br />
else<br />
add_daemon dropboxd<br />
stat_done<br />
fi<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stopping Dropbox Service"<br />
[ ! -z "$PID" ] && kill $PID > /dev/null<br />
if [ $? -gt 0 ]; then<br />
stat_fail<br />
else<br />
rm_daemon dropboxd<br />
stat_done<br />
fi<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 3<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
Make the file executable with<br />
# chmod +x /etc/rc.d/dropboxd<br />
<br />
This allows you to start or stop {{Codeline|dropboxd}} just like any other service. Place it in the DAEMONS array in {{Filename|/etc/rc.conf}} for it to start at boot.<br />
<br />
# /etc/rc.d/dropboxd start<br />
# /etc/rc.d/dropboxd stop<br />
# /etc/rc.d/dropboxd restart<br />
<br />
And in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(... '''@dropboxd''' ...)<br />
<br />
==Without Nautilus (Another Way)==<br />
<br />
Another way to use Dropbox without Nautilus but with another file manager like Thunar is described below:<br />
<br />
1. Create a fake Nautilus script that will launch Thunar:<br />
$ sudo touch /usr/bin/nautilus && sudo chmod +x /usr/bin/nautilus && sudo nano /usr/bin/nautilus<br />
<br />
2. Insert this text into the file, then save and exit:<br />
#!/bin/bash<br />
exec thunar $2<br />
exit 0<br />
<br />
3. Launch Dropbox<br />
$ dropboxd<br />
<br />
4. Click on the Dropbox tray icon to open your Dropbox folder in Thunar.<br />
<br />
{{Note|In this way there is no need to create a Dropbox daemon in {{Filename|/etc/rc.d/}} and to start it at boot via {{Filename|/etc/rc.conf}} or to make it start via your session manager: just leave the "Start Dropbox on system startup" option flagged in the Preferences window.}}<br />
<br />
{{Note|If you already have Nautilus installed but do not want to use it, neither modify the existing file under {{Filename|/usr/bin}}, just change the {{Filename|/usr/bin}} for {{Filename|/opt/dropbox}} in the step 2 above, like this: {{Codeline|$ sudo touch /opt/dropbox/nautilus && sudo chmod +x /opt/dropbox/nautilus && sudo nano /opt/dropbox/nautilus}}. Dropbox will look in this path first!}}<br />
<br />
==Securing Your Dropbox==<br />
<br />
If you want to store sensitive data in your Dropbox, you should encrypt it before. Syncing to Dropbox is encrypted, but all files are (for the time being) stored on the server just as you put them in your Dropbox.<br />
<br />
* Dropbox works with [[TrueCrypt]], and after you initially uploaded the TrueCrypt volume to Dropbox, performance is quite okay, because Dropbox has a working binary diff.<br />
<br />
* Another possibility is to use [[EncFS]], which has the advantage that all files are encrypted separately, i.e. you do not have to determine in advance the size of the content you want to encrypt and your encrypted directory grows and shrinks while you add/delete/modify files in it. You can also mount an encrypted volume at startup using the -S option of {{Codeline|encfs}} to avoid having to input the passphrase, but note that your encrypted files are not secure from someone who has direct access to your computer.<br />
<br />
==Multiple Dropbox Instances==<br />
<br />
If you need to separate or distinguish your data, personal and work usage for example, you can subscribe to Dropbox with different email addresses and have multiple directories synced to different instances.<br />
<br />
The basic principle and general how-to are described in the [http://wiki.dropbox.com/TipsAndTricks/MultipleInstancesOnUnix Dropbox Wiki].<br />
<br />
{{Note|When dealing with multiple instances you have to select the Dropbox destination folder, which the Dropbox installer asks in the last step; usage examples may be {{Filename|/home/dropbox-personal}}, {{Filename|/home/dropbox-work}}, and so on.}}<br />
<br />
For convenience, here is a script that I use to accomplish the task: just add a dir in the "dropboxes" list to have another instance of Dropbox, referring to the dir, loaded at script startup.<br />
<br />
<pre><br />
#!/bin/bash <br />
<br />
#******************************* <br />
# Multiple dropbox instances <br />
#******************************* <br />
<br />
dropboxes=(.dropbox-personal .dropbox-work) <br />
<br />
for dropbox in ${dropboxes[@]} <br />
do <br />
if ! [ -d $HOME/$dropbox ];then <br />
mkdir $HOME/$dropbox <br />
fi <br />
HOME=$HOME/$dropbox/ /usr/bin/dropbox start -i <br />
done <br />
</pre><br />
<br />
==Dropbox on Laptops==<br />
<br />
Dropbox itself is pretty good at dealing with connectivity problems. If you have a laptop and roam between different network environments, Dropbox will have problems reconnecting if you do not restart it. The easiest way to solve this with [[netcfg]] is to use POST_UP and PRE_DOWN.<br />
<br />
In every network profile you use, add the appropriate commands:<br />
<pre><br />
POST_UP="any other code; su -c 'DISPLAY=:0 /usr/bin/dropboxd &' your_user"<br />
PRE_DOWN="any other code; killall dropbox"<br />
</pre><br />
Obviously, your_user has to be edited and 'any other code;' can be omitted if you do not have any. The above will make sure that Dropbox is running only if there is a network profile active.<br />
<br />
If you have connectivity problem with [[NetworkManager]], [https://bbs.archlinux.org/viewtopic.php?pid=790905, this thread] on forum should be useful.<br />
<br />
==Known Issues==<br />
===Connecting...===<br />
It may happen that Dropbox cannot connect successfully because it was loaded before an internet connection was established. To solve the problem the content of the file /opt/dropbox/dropboxd needs to be replaced with the following: <br />
<br />
#!/bin/sh<br />
<br />
# Copyright 2008 Evenflow, Inc., 2010 Dropbox<br />
#<br />
# Environment script for the dropbox executable.<br />
<br />
start_dropbox() {<br />
PAR=$(dirname $(readlink -f $0))<br />
OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH<br />
LD_LIBRARY_PATH=$PAR:$LD_LIBRARY_PATH <br />
<br />
TMP1=`ps ax|grep dropbox|grep -v grep`<br />
if [ -n "$TMP1" ]; then<br />
kill -9 $(pidof dropbox) >/dev/null 2>&1<br />
fi<br />
exec $PAR/dropbox $@ &<br />
}<br />
<br />
do_dropbox() {<br />
start_dropbox >/dev/null 2>&1<br />
while [ 1 ]; do<br />
sleep 5<br />
ERROR="$(net_test)"<br />
if [ -n "$ERROR" ]; then<br />
LAST_ERROR=1<br />
else<br />
if [ -n "$LAST_ERROR" ]; then<br />
# Connection seems to be up but last cycle was down<br />
LAST_ERROR=""<br />
start_dropbox >/dev/null 2>&1<br />
fi<br />
fi<br />
done<br />
<br />
}<br />
<br />
net_test() {<br />
TMP1="$(ifconfig |grep "inet" |grep -v "127.0.0.1")"<br />
[ -z "$TMP1" ] && echo "error"<br />
}<br />
<br />
do_dropbox<br />
<br />
===Dropbox does not start - "This is usually because of a permission error"===<br />
<br />
====Check permissions====<br />
Make sure that you own Dropbox's directories before running the application. This includes<br />
*{{Filename|~/.dropbox}} - Dropbox's configuration directory<br />
*{{Filename|~/Dropbox}} - Dropbox's download directory (default)<br />
You can ensure this by changing their owner with '''chown -R'''.<br />
<br />
This error could also be caused by /var being full.<br />
<br />
====Re-linking your account====<br />
[https://www.dropbox.com/help/72 Dropbox's FAQ] suggests that this error may be caused by misconfiguration and is fixed by (re)moving the current configuration folder<br />
# mv ~/.dropbox ~/.dropbox.old<br />
and restarting Dropbox.<br />
<br />
====Errors caused by running out of space====<br />
A common error that might happen is that there is no more available space on your {{Filename|/tmp}} and {{Filename|/var}} partitions. If this happens, Dropbox will crash on startup with the following error in its log:<br />
<pre><br />
Exception: Not a valid FileCache file<br />
</pre><br />
A detailed story of such an occurrence can be found in the [https://bbs.archlinux.org/viewtopic.php?pid=973458 forums]. Make sure there is enough space available before launching Dropbox.<br />
<br />
====Locale caused errors====<br />
Try starting {{Codeline|dropboxd}} with this code:<br />
<pre><br />
LANG=$LOCALE<br />
dropboxd<br />
</pre><br />
(You can also use a different value for LANG; it must be in the format "en_US.UTF-8")<br />
This helps when running from a Bash script or Bash shell where {{Filename|/etc/rc.d/functions}} has been loaded<br />
<br />
==Alternatives==<br />
*[https://one.ubuntu.com/ Ubuntu One], available in [http://aur.archlinux.org/packages.php?ID=30081 AUR].<br />
*[https://spideroak.com/ Spideroak], available in [http://aur.archlinux.org/packages.php?ID=24401 AUR].<br />
*[http://kdropbox.deuteros.es/ KFileBox], available in [http://aur.archlinux.org/packages.php?ID=41169 AUR].<br />
*[https://www.wuala.com/ Wuala], available in [https://aur.archlinux.org/packages.php?ID=17403 AUR].</div>Hasardeur