https://wiki.archlinux.org/api.php?action=feedcontributions&user=Leeo97one&feedformat=atomArchWiki - User contributions [en]2024-03-29T04:54:48ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Virtual_reality&diff=715818Virtual reality2022-02-05T13:42:47Z<p>Leeo97one: fix typo</p>
<hr />
<div>[[Category:Graphics]]<br />
[[ja:バーチャルリアリティ]]<br />
[[zh-hans:Virtual reality]]<br />
{{Out of date|Many packages have been deleted.[https://lists.archlinux.org/pipermail/aur-requests/2021-May/053836.html][https://lists.archlinux.org/pipermail/aur-requests/2021-May/053828.html]<br />
Should mention [https://github.com/alvr-org/alvr ALVR].}}<br />
[[Wikipedia:Virtual reality|Virtual reality]] is the process of simulating an environment for a user, using a variety of peripherals, head mounted displays or [[Wikipedia:Cave automatic virtual environment|CAVEs]], and trackers. Instead of showing you a static viewpoint from a screen, it renders your viewpoint relative to where you are standing, on a head-attached or projected surface, to give an effect identical to your own eyes.<br />
<br />
A number of peripherals have been released or are about to be released recently which have brought affordable, extremely immersive virtual reality to everyone. Most of these peripherals have full or partial Linux support, and many have [[AUR]] packages.<br />
<br />
== Compatibility matrix ==<br />
<br />
{{Style|Use [[Template:Yes]] and question marks.}}<br />
<br />
'''Legend:'''<br />
<br />
* Green: natively supported<br />
* Yellow: support via toolkit or partial support<br />
* Red: broken support<br />
* Uncolored: unknown/unfinished/planned support<br />
<br />
{| class="wikitable"<br />
!<br />
!Oculus Rift<br />
!OSVR<br />
!OpenVR<br />
!Leap Motion<br />
!Razer Hydra<br />
|-<br />
!Dolphin (original VR fork)<br />
| {{G|}}<br />
|<br />
| {{Y|Partially complete}}<br />
|<br />
| {{G|}}<br />
|-<br />
!Dolphin (official OSVR support)<br />
| {{Y|Via OSVR}}<br />
| {{G|}}<br />
|<br />
| {{Y|Via OSVR}}<br />
| {{Y|Via OSVR}}<br />
|-<br />
!Minecrift (Minecraft VR)<br />
| {{G|}}<br />
|(Planned) Via OSVR-SteamVR<br />
|(Planned)<br />
|(Planned) Via OSVR<br />
| {{G|}}<br />
|-<br />
!Janus VR<br />
| {{G|}}<br />
| {{G|}}<br />
| {{G|}}<br />
| {{G|}}<br />
| {{Y|Via OSVR}}<br />
|-<br />
!Vircadia<br />
| {{Y|Via SteamVR-OpenHMD}}<br />
| Unknown if working via SteamVR-OSVR<br />
| {{Y|Legacy input}}<br />
| Not in Linux build and unknown if still supported<br />
| Unknown<br />
|-<br />
!Team Fortress 2<br />
| {{R|Via OpenVR}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Support broken and fixed seemingly at random}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!Half Life 2<br />
| {{R|Displays one black eye, one solid color eye}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Displays one black eye, one solid color eye}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!VRUI VR Toolkit and demos<br />
| {{G|}}<br />
|<br />
|<br />
| {{G|}}<br />
| {{G|}}<br />
|-<br />
!4089: The Ghost Within<br />
| {{R|Via OpenVR}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Broken until Valve fixes the compositor on Linux}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!Games/Programs in Wine<br />
| {{Y|1=On OVRSDK versions <=0.5.0.0, with {{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}} and {{Aur|wine-unity3d-git}}}}<br />
| {{Y|Trackers work perfectly. Unity demos without Render Manager 'work' but are buggy, ones using the Render Manager display a white or black screen.}}<br />
|<br />
|<br />
|<br />
|}<br />
<br />
== Supported peripherals and toolkits ==<br />
<br />
=== OpenXR ===<br />
<br />
OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is maintained by the Khronos Group and adopted by most of the industry. Most runtimes support OpenXR.<br />
<br />
=== Monado ===<br />
<br />
Monado is an open source OpenXR runtime developed by Collabora. It is under heavy development and aims to provide a common runtime supporting most headsets. Current progress can be found here: https://monado.freedesktop.org/<br />
<br />
=== OpenVR / SteamVR ===<br />
<br />
OpenVR is an effort by Valve to create an open API for VR development. Unfortunately, while the API is open, the actual default implementation (SteamVR) is not. It provides an OpenXR runtime<br />
<br />
==== Setting up ====<br />
<br />
{{Style|''pacman'' command violates [[Help:Style#Package management instructions]].}}<br />
<br />
Install [[Vulkan]] and [[Steam]]. If using nvidia drivers, you may need to set the [[Vulkan#Selecting Vulkan driver|VK_ICD_FILENAMES]] environment variable.<br />
<br />
pacman -S lib32-gtk2 \<br />
lib32-libva \<br />
lib32-libvdpau<br />
<br />
From steam, install SteamVR from the tools menu.<br />
<br />
==== Troubleshooting ====<br />
<br />
===== Configuration or startup errors =====<br />
<br />
SteamVR/OpenVR create a config directory ~/.openvr that can get misconfigured over the various versions. Delete that directory and completely uninstall/reinstall SteamVR.<br />
<br />
It can also apparently have trouble accessing the Rift under some configurations. An alternative is to use the OSVR-SteamVR driver and the OSVR-Oculus-Rift plugin.<br />
<br />
=== OpenHMD ===<br />
<br />
[http://www.openhmd.net/ OpenHMD] aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. The aim is to implement support for as many devices as possible in a portable, cross-platform package.<br />
<br />
OpenHMD supports a wide range of devices such as Oculus Rift, HTC Vive, Sony PSVR, Deepoon E2 and others.<br />
<br />
Bindings for .NET, Java, Perl, Python and Rust are available from third-parties.<br />
<br />
==== Installation ====<br />
<br />
Install {{aur|openhmd-git}}.<br />
<br />
==== SteamVR support ====<br />
<br />
It is possible to use OpenHMD with SteamVR. To do that, you need to install {{AUR|steamvr-openhmd-git}} and create symlink that points to the OpenHMD SteamVR driver inside your SteamVR drivers directory, for example:<br />
<br />
$ ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd<br />
<br />
== Deprecated peripherals and toolkits ==<br />
<br />
=== OSVR ===<br />
<br />
OSVR is a joint effort by Sensics, Inc (a long standing VR company) and Razer to create a completely or nearly completely open software API for VR, in which end developers only need to hook their individual headsets into a few functions in order to get first-rate support. It supports the widest variety of peripherals, as well as having extremely flexible config via the JSON config files.<br />
<br />
It also provides a plugin which allows it to act as an OpenVR implementation, letting you use it to play OpenVR/SteamVR games with any peripherals it supports.<br />
<br />
==== Setting up ====<br />
<br />
Install {{Aur|osvr-core-git}}, and whatever plugins are neccesary to support your individual device. Currently available external plugins include:<br />
<br />
{{aur|osvr-oculus-rift-git}}{{Broken package link|package not found}}<br />
<br />
{{aur|osvr-leap-motion-git}}<br />
<br />
If wish to use OSVR with SteamVR/OpenVR games and applications, install {{Aur|osvr-steamvr-git}} and symlink the driver to your SteamVR installation.<br />
<br />
Run the OSVR server and leave it running in the background, by calling it with <br />
<br />
osvr_server /usr/share/osvrcore/sample-configs/your_device_config.json<br />
<br />
You may wish to customize the configuration to suit your individual needs.<br />
<br />
To test that your installation is working and your trackers are available, install {{aur|osvr-tracker-viewer-git}} and run {{ic|OSVRTrackerView}}. You should see a set of axis for each tracker OSVR can pick up. If you do not, run {{ic|osvr_print_tree}} to see what trackers are available or if there is a configuration issue.<br />
<br />
=== Oculus Rift ===<br />
<br />
Oculus stopped supporting Linux.<br />
<br />
See [[Oculus Rift]].<br />
<br />
=== Leap Motion ===<br />
<br />
The Leap Motion is an incredibly affordable hand tracker which can easily be mounted on the faceplate of an HMD to allow you to interact with virtual objects. Unfortunately, the latest Orion software is not available for Linux while it is awaiting porting, so the currently available tracking is functional but excessively buggy. As such, it is only really suitable on Linux for social interaction, but seeing as it costs less than 1/10th what an HMD or equivalent tracking system, it is still a fairly useful device.<br />
<br />
==== Setting up ====<br />
<br />
Install {{aur|leap-motion-driver}}, {{aur|osvr-leap-motion-git}} and optionally {{aur|leap-motion-sdk}}. <br />
<br />
To configure, enable and start {{ic|leapd.service}} and run {{ic|LeapControlPanel}}. To test that tracking works, run the {{ic|Playground}} demo included with the installation.<br />
<br />
== Supported software ==<br />
<br />
Currently there are a handful of apps which work well on the Rift and Linux, with several of them being in the AUR.<br />
<br />
=== Dolphin (original VR fork) ===<br />
<br />
{{Aur|dolphin-emu-vr-git}}{{Broken package link|package not found}} is an emulator for Gamecube, with patches to allow it to have full headtracking stereoscopic rendering, as well as a number of customizations to make games work well out of the box in VR (for example, disabling culling functions to let you view the entire world). <br />
<br />
Support has for the most part been discontinued, in light of the Dolphin project beginning to officially support OSVR upstream.<br />
<br />
{{Note|When using this application with the Rift, it works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated to minimize latency.}}<br />
<br />
=== Dolphin (official OSVR support) ===<br />
<br />
The Dolphin project has begun to work on adding support for VR officially using OSVR, available through the package {{aur|dolphin-emu-osvr-git}}. It can even use OSVR's path tree inputs as controller inputs, such that you can use a pinch or sixaxis controller input as a wiimote input. Support is limited in places however, as the fork is not as far along as the original Oculus-only fork was.<br />
<br />
=== Games/Programs in Wine ===<br />
<br />
A number of applications have some level of compatibility when using Wine, but often require some level of tweaks to make them function as expected.<br />
<br />
{{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}} is a utility to patch up the differences between the Linux and Windows versions of the Oculus SDK when running Wine. It creates a shared memory context for the Wine application to use, letting the app access the native Oculus SDK. No installation of the SDK to the wineprefix appears to be necessary.<br />
<br />
==== Unity games ====<br />
<br />
To get the best performance in Unity based games, ideally you should force them into OpenGL mode with the {{ic|-force-opengl}}. However this is not currently possible with an unpatched wine, as the WGL context it tries to force has some differences from a typical GLX context, [https://wiki.unity3d.com/index.php/Running_Unity_on_Linux_through_Wine#.22-force-opengl.22_option_crashing_Unity_.28Experimental_fix.29 as described here]{{Dead link|2021|11|19|status=domain name not resolved}}. Using the {{Aur|wine-unity3d-git}} package will allow you to run these games with native OpenGL, allowing you to play them with decent performance on your machine. Unfortunately they often try to change the video mode or mess with other settings, so supplying default screen settings may be neccesary. Additionally, since it is using native OpenGL, nvidia's __GL_THREADED_OPTIMIZATIONS may give a significant performance gain. Overall, the command should look something like this:<br />
<br />
env __GL_THREADED_OPTIMIZATIONS=1 wine UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl<br />
<br />
Or when using {{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}}:<br />
<br />
env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl<br />
<br />
=== Minecrift (Minecraft VR) ===<br />
<br />
A guide is available [https://www.reddit.com/r/oculus_linux/comments/2shnbk/minecrift_linuxmac_support_coming_soon_steps_to/ here] to run an existing Minecrift version with the very latest JRift (native java rift runtime) build. You will likely want to install an older version when using the Rift, as JRift has been updated continuously to match the Oculus SDK.<br />
<br />
Additionally, many users have reported much better performance with JRE8, rather than JRE7.<br />
<br />
{{Note|When using the Rift, this application works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated. Unfortunately, as of 5/12/15 the ingame GUI will display as an elongated 9:16 rectangle, as opposed to staying at the screen ratio. This is usable but not ideal.}}<br />
<br />
=== JanusVR ===<br />
<br />
"janusVR: an immersive, collaborative, multi-dimensional internet." JanusVR is an application that lets you explore 3D websites in a multiplayer experience. An AUR package is available: {{AUR|janusvr}}<br />
<br />
The AUR package does not automatically update when JanusVR does, but the application will tell you when a new version is available. Simply re-build the package when this happens.<br />
<br />
{{Note|This application works correctly with Portrait (Direct) Mode (as of 42.3), and should be run with the Rift un-rotated.}}<br />
<br />
==== Leap Motion support ====<br />
<br />
The Leap Motion allows you to be more expressive with gesture input, seen by other people within the world. You will want to mount your Leap to the front of your HMD and ensure that you are using the default avatar.<br />
<br />
=== linux-vr-player-or-something video player ===<br />
<br />
A (very) simple VR video player using OpenHMD for motion tracking and libmpv for playback. Should behave like normal mpv (same keyboard shortcuts etc.), so just launch with {{ic|ohmdplayer some-vr-video.mp4}}. Does not use the aberration shaders to correct for color bleeding, some of the eye distance stuff etc. so things might not look optimal, but it is better than nothing.<br />
<br />
Available as {{AUR|linux-vr-player-or-something-git}}.<br />
<br />
=== SideQuest ===<br />
<br />
SideQuest can be used to install [[Wikipedia:APK file|APK file]]s to your Oculus Quest. It is available as {{AUR|sidequest-bin}}.<br />
<br />
See https://sidequestvr.com/setup-howto for installation steps:<br />
<br />
# Create an Oculus developer account.<br />
# Turn on Quest in developer mode (e.g., with your phone) and connect your Quest via cable.<br />
# Press ''Allow USB debugging'' inside Quest.<br />
<br />
See the [https://sidequestvr.com SideQuest website] for more information.<br />
<br />
== Other notes ==<br />
<br />
=== Enable OpenAL's binaural sound support ===<br />
<br />
See [[Gaming#Binaural audio with OpenAL]].</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Virtual_reality&diff=715816Virtual reality2022-02-05T13:42:09Z<p>Leeo97one: ALVR mention</p>
<hr />
<div>[[Category:Graphics]]<br />
[[ja:バーチャルリアリティ]]<br />
[[zh-hans:Virtual reality]]<br />
{{Out of date|Many packages have been deleted.[https://lists.archlinux.org/pipermail/aur-requests/2021-May/053836.html][https://lists.archlinux.org/pipermail/aur-requests/2021-May/053828.html]<br />
Sould mention [https://github.com/alvr-org/alvr ALVR].}}<br />
[[Wikipedia:Virtual reality|Virtual reality]] is the process of simulating an environment for a user, using a variety of peripherals, head mounted displays or [[Wikipedia:Cave automatic virtual environment|CAVEs]], and trackers. Instead of showing you a static viewpoint from a screen, it renders your viewpoint relative to where you are standing, on a head-attached or projected surface, to give an effect identical to your own eyes.<br />
<br />
A number of peripherals have been released or are about to be released recently which have brought affordable, extremely immersive virtual reality to everyone. Most of these peripherals have full or partial Linux support, and many have [[AUR]] packages.<br />
<br />
== Compatibility matrix ==<br />
<br />
{{Style|Use [[Template:Yes]] and question marks.}}<br />
<br />
'''Legend:'''<br />
<br />
* Green: natively supported<br />
* Yellow: support via toolkit or partial support<br />
* Red: broken support<br />
* Uncolored: unknown/unfinished/planned support<br />
<br />
{| class="wikitable"<br />
!<br />
!Oculus Rift<br />
!OSVR<br />
!OpenVR<br />
!Leap Motion<br />
!Razer Hydra<br />
|-<br />
!Dolphin (original VR fork)<br />
| {{G|}}<br />
|<br />
| {{Y|Partially complete}}<br />
|<br />
| {{G|}}<br />
|-<br />
!Dolphin (official OSVR support)<br />
| {{Y|Via OSVR}}<br />
| {{G|}}<br />
|<br />
| {{Y|Via OSVR}}<br />
| {{Y|Via OSVR}}<br />
|-<br />
!Minecrift (Minecraft VR)<br />
| {{G|}}<br />
|(Planned) Via OSVR-SteamVR<br />
|(Planned)<br />
|(Planned) Via OSVR<br />
| {{G|}}<br />
|-<br />
!Janus VR<br />
| {{G|}}<br />
| {{G|}}<br />
| {{G|}}<br />
| {{G|}}<br />
| {{Y|Via OSVR}}<br />
|-<br />
!Vircadia<br />
| {{Y|Via SteamVR-OpenHMD}}<br />
| Unknown if working via SteamVR-OSVR<br />
| {{Y|Legacy input}}<br />
| Not in Linux build and unknown if still supported<br />
| Unknown<br />
|-<br />
!Team Fortress 2<br />
| {{R|Via OpenVR}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Support broken and fixed seemingly at random}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!Half Life 2<br />
| {{R|Displays one black eye, one solid color eye}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Displays one black eye, one solid color eye}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!VRUI VR Toolkit and demos<br />
| {{G|}}<br />
|<br />
|<br />
| {{G|}}<br />
| {{G|}}<br />
|-<br />
!4089: The Ghost Within<br />
| {{R|Via OpenVR}}<br />
| {{R|Via OSVR-SteamVR}}<br />
| {{R|Broken until Valve fixes the compositor on Linux}}<br />
| {{R|Via OSVR}}<br />
| {{R|Via OSVR}}<br />
|-<br />
!Games/Programs in Wine<br />
| {{Y|1=On OVRSDK versions <=0.5.0.0, with {{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}} and {{Aur|wine-unity3d-git}}}}<br />
| {{Y|Trackers work perfectly. Unity demos without Render Manager 'work' but are buggy, ones using the Render Manager display a white or black screen.}}<br />
|<br />
|<br />
|<br />
|}<br />
<br />
== Supported peripherals and toolkits ==<br />
<br />
=== OpenXR ===<br />
<br />
OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is maintained by the Khronos Group and adopted by most of the industry. Most runtimes support OpenXR.<br />
<br />
=== Monado ===<br />
<br />
Monado is an open source OpenXR runtime developed by Collabora. It is under heavy development and aims to provide a common runtime supporting most headsets. Current progress can be found here: https://monado.freedesktop.org/<br />
<br />
=== OpenVR / SteamVR ===<br />
<br />
OpenVR is an effort by Valve to create an open API for VR development. Unfortunately, while the API is open, the actual default implementation (SteamVR) is not. It provides an OpenXR runtime<br />
<br />
==== Setting up ====<br />
<br />
{{Style|''pacman'' command violates [[Help:Style#Package management instructions]].}}<br />
<br />
Install [[Vulkan]] and [[Steam]]. If using nvidia drivers, you may need to set the [[Vulkan#Selecting Vulkan driver|VK_ICD_FILENAMES]] environment variable.<br />
<br />
pacman -S lib32-gtk2 \<br />
lib32-libva \<br />
lib32-libvdpau<br />
<br />
From steam, install SteamVR from the tools menu.<br />
<br />
==== Troubleshooting ====<br />
<br />
===== Configuration or startup errors =====<br />
<br />
SteamVR/OpenVR create a config directory ~/.openvr that can get misconfigured over the various versions. Delete that directory and completely uninstall/reinstall SteamVR.<br />
<br />
It can also apparently have trouble accessing the Rift under some configurations. An alternative is to use the OSVR-SteamVR driver and the OSVR-Oculus-Rift plugin.<br />
<br />
=== OpenHMD ===<br />
<br />
[http://www.openhmd.net/ OpenHMD] aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. The aim is to implement support for as many devices as possible in a portable, cross-platform package.<br />
<br />
OpenHMD supports a wide range of devices such as Oculus Rift, HTC Vive, Sony PSVR, Deepoon E2 and others.<br />
<br />
Bindings for .NET, Java, Perl, Python and Rust are available from third-parties.<br />
<br />
==== Installation ====<br />
<br />
Install {{aur|openhmd-git}}.<br />
<br />
==== SteamVR support ====<br />
<br />
It is possible to use OpenHMD with SteamVR. To do that, you need to install {{AUR|steamvr-openhmd-git}} and create symlink that points to the OpenHMD SteamVR driver inside your SteamVR drivers directory, for example:<br />
<br />
$ ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd<br />
<br />
== Deprecated peripherals and toolkits ==<br />
<br />
=== OSVR ===<br />
<br />
OSVR is a joint effort by Sensics, Inc (a long standing VR company) and Razer to create a completely or nearly completely open software API for VR, in which end developers only need to hook their individual headsets into a few functions in order to get first-rate support. It supports the widest variety of peripherals, as well as having extremely flexible config via the JSON config files.<br />
<br />
It also provides a plugin which allows it to act as an OpenVR implementation, letting you use it to play OpenVR/SteamVR games with any peripherals it supports.<br />
<br />
==== Setting up ====<br />
<br />
Install {{Aur|osvr-core-git}}, and whatever plugins are neccesary to support your individual device. Currently available external plugins include:<br />
<br />
{{aur|osvr-oculus-rift-git}}{{Broken package link|package not found}}<br />
<br />
{{aur|osvr-leap-motion-git}}<br />
<br />
If wish to use OSVR with SteamVR/OpenVR games and applications, install {{Aur|osvr-steamvr-git}} and symlink the driver to your SteamVR installation.<br />
<br />
Run the OSVR server and leave it running in the background, by calling it with <br />
<br />
osvr_server /usr/share/osvrcore/sample-configs/your_device_config.json<br />
<br />
You may wish to customize the configuration to suit your individual needs.<br />
<br />
To test that your installation is working and your trackers are available, install {{aur|osvr-tracker-viewer-git}} and run {{ic|OSVRTrackerView}}. You should see a set of axis for each tracker OSVR can pick up. If you do not, run {{ic|osvr_print_tree}} to see what trackers are available or if there is a configuration issue.<br />
<br />
=== Oculus Rift ===<br />
<br />
Oculus stopped supporting Linux.<br />
<br />
See [[Oculus Rift]].<br />
<br />
=== Leap Motion ===<br />
<br />
The Leap Motion is an incredibly affordable hand tracker which can easily be mounted on the faceplate of an HMD to allow you to interact with virtual objects. Unfortunately, the latest Orion software is not available for Linux while it is awaiting porting, so the currently available tracking is functional but excessively buggy. As such, it is only really suitable on Linux for social interaction, but seeing as it costs less than 1/10th what an HMD or equivalent tracking system, it is still a fairly useful device.<br />
<br />
==== Setting up ====<br />
<br />
Install {{aur|leap-motion-driver}}, {{aur|osvr-leap-motion-git}} and optionally {{aur|leap-motion-sdk}}. <br />
<br />
To configure, enable and start {{ic|leapd.service}} and run {{ic|LeapControlPanel}}. To test that tracking works, run the {{ic|Playground}} demo included with the installation.<br />
<br />
== Supported software ==<br />
<br />
Currently there are a handful of apps which work well on the Rift and Linux, with several of them being in the AUR.<br />
<br />
=== Dolphin (original VR fork) ===<br />
<br />
{{Aur|dolphin-emu-vr-git}}{{Broken package link|package not found}} is an emulator for Gamecube, with patches to allow it to have full headtracking stereoscopic rendering, as well as a number of customizations to make games work well out of the box in VR (for example, disabling culling functions to let you view the entire world). <br />
<br />
Support has for the most part been discontinued, in light of the Dolphin project beginning to officially support OSVR upstream.<br />
<br />
{{Note|When using this application with the Rift, it works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated to minimize latency.}}<br />
<br />
=== Dolphin (official OSVR support) ===<br />
<br />
The Dolphin project has begun to work on adding support for VR officially using OSVR, available through the package {{aur|dolphin-emu-osvr-git}}. It can even use OSVR's path tree inputs as controller inputs, such that you can use a pinch or sixaxis controller input as a wiimote input. Support is limited in places however, as the fork is not as far along as the original Oculus-only fork was.<br />
<br />
=== Games/Programs in Wine ===<br />
<br />
A number of applications have some level of compatibility when using Wine, but often require some level of tweaks to make them function as expected.<br />
<br />
{{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}} is a utility to patch up the differences between the Linux and Windows versions of the Oculus SDK when running Wine. It creates a shared memory context for the Wine application to use, letting the app access the native Oculus SDK. No installation of the SDK to the wineprefix appears to be necessary.<br />
<br />
==== Unity games ====<br />
<br />
To get the best performance in Unity based games, ideally you should force them into OpenGL mode with the {{ic|-force-opengl}}. However this is not currently possible with an unpatched wine, as the WGL context it tries to force has some differences from a typical GLX context, [https://wiki.unity3d.com/index.php/Running_Unity_on_Linux_through_Wine#.22-force-opengl.22_option_crashing_Unity_.28Experimental_fix.29 as described here]{{Dead link|2021|11|19|status=domain name not resolved}}. Using the {{Aur|wine-unity3d-git}} package will allow you to run these games with native OpenGL, allowing you to play them with decent performance on your machine. Unfortunately they often try to change the video mode or mess with other settings, so supplying default screen settings may be neccesary. Additionally, since it is using native OpenGL, nvidia's __GL_THREADED_OPTIMIZATIONS may give a significant performance gain. Overall, the command should look something like this:<br />
<br />
env __GL_THREADED_OPTIMIZATIONS=1 wine UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl<br />
<br />
Or when using {{Aur|oculus-wine-wrapper-git}}{{Broken package link|package not found}}:<br />
<br />
env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl<br />
<br />
=== Minecrift (Minecraft VR) ===<br />
<br />
A guide is available [https://www.reddit.com/r/oculus_linux/comments/2shnbk/minecrift_linuxmac_support_coming_soon_steps_to/ here] to run an existing Minecrift version with the very latest JRift (native java rift runtime) build. You will likely want to install an older version when using the Rift, as JRift has been updated continuously to match the Oculus SDK.<br />
<br />
Additionally, many users have reported much better performance with JRE8, rather than JRE7.<br />
<br />
{{Note|When using the Rift, this application works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated. Unfortunately, as of 5/12/15 the ingame GUI will display as an elongated 9:16 rectangle, as opposed to staying at the screen ratio. This is usable but not ideal.}}<br />
<br />
=== JanusVR ===<br />
<br />
"janusVR: an immersive, collaborative, multi-dimensional internet." JanusVR is an application that lets you explore 3D websites in a multiplayer experience. An AUR package is available: {{AUR|janusvr}}<br />
<br />
The AUR package does not automatically update when JanusVR does, but the application will tell you when a new version is available. Simply re-build the package when this happens.<br />
<br />
{{Note|This application works correctly with Portrait (Direct) Mode (as of 42.3), and should be run with the Rift un-rotated.}}<br />
<br />
==== Leap Motion support ====<br />
<br />
The Leap Motion allows you to be more expressive with gesture input, seen by other people within the world. You will want to mount your Leap to the front of your HMD and ensure that you are using the default avatar.<br />
<br />
=== linux-vr-player-or-something video player ===<br />
<br />
A (very) simple VR video player using OpenHMD for motion tracking and libmpv for playback. Should behave like normal mpv (same keyboard shortcuts etc.), so just launch with {{ic|ohmdplayer some-vr-video.mp4}}. Does not use the aberration shaders to correct for color bleeding, some of the eye distance stuff etc. so things might not look optimal, but it is better than nothing.<br />
<br />
Available as {{AUR|linux-vr-player-or-something-git}}.<br />
<br />
=== SideQuest ===<br />
<br />
SideQuest can be used to install [[Wikipedia:APK file|APK file]]s to your Oculus Quest. It is available as {{AUR|sidequest-bin}}.<br />
<br />
See https://sidequestvr.com/setup-howto for installation steps:<br />
<br />
# Create an Oculus developer account.<br />
# Turn on Quest in developer mode (e.g., with your phone) and connect your Quest via cable.<br />
# Press ''Allow USB debugging'' inside Quest.<br />
<br />
See the [https://sidequestvr.com SideQuest website] for more information.<br />
<br />
== Other notes ==<br />
<br />
=== Enable OpenAL's binaural sound support ===<br />
<br />
See [[Gaming#Binaural audio with OpenAL]].</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Installation_guide_(Fran%C3%A7ais)&diff=709890Installation guide (Français)2022-01-13T17:22:18Z<p>Leeo97one: /* Fstab */ inline code</p>
<hr />
<div>[[Category:Installation process (Français)]]<br />
[[bg:Installation guide]]<br />
[[de:Arch Install Scripts]]<br />
[[el:Installation guide]]<br />
[[en:Installation guide]]<br />
[[es:Installation guide]]<br />
[[fa:راهنمای تازهکاران]]<br />
[[fi:Installation guide]]<br />
[[it:Installation guide]]<br />
[[ja:インストールガイド]]<br />
[[ko:Installation guide]]<br />
[[pl:Installation guide]]<br />
[[pt:Installation guide]]<br />
[[ru:Installation guide]]<br />
[[sv:Installation guide]]<br />
[[th:Installation guide]]<br />
[[tr:Installation guide]]<br />
[[uk:Installation guide]]<br />
[[zh-hans:Installation guide]]<br />
[[zh-hant:Installation guide]]<br />
Ce document est un guide pour l'installation d'[[Arch_Linux_(Français)|Arch Linux]] au moyen du système ''live'' Archiso démarré depuis le support d'installation issue des images officielles. Le support d'installation offre des fonctionnalités d'accessibilité décrites à la page [[Install Arch Linux with accessibility options (Français)|Installer Arch Linux avec les options d'accessibilité]]. Pour les autres moyens d'installation, voir [[:Category:Installation process (Français)]].<br />
<br />
Avant installation, il est conseillé de consulter la [[Frequently asked questions (Français)|FAQ]]. Pour les conventions utilisées dans ce document, voir [[Help:Reading (Français)|l'aide à la lecture]]. En particulier, les exemple de code contiennent parfois des champs (notés en {{ic|''italique''}}) que vous devez modifier manuellement.<br />
<br />
Pour de plus amples instructions, se référer aux articles respectifs du [[ArchWiki]] ainsi que les [[man page]]s en liens dans ce guide. Pour une aide interactive, les [[Arch IRC channels (Français)|Canaux IRC Arch]] ainsi que le [https://bbs.archlinux.org/ forum international] et le [https://forums.archlinux.fr forum francophone] sont disponibles.<br />
<br />
Arch Linux devrait fonctionner sur n'importe quelle machine utilisant l'architecture [[Wikipedia:fr:X86-64|x86_64]] dotée d'un minimum de 512 MiB de RAM, bien que plus de mémoire soit nécessaire pour démarrer le système ''live'' en vue de l'installation. [https://lists.archlinux.org/pipermail/arch-releng/2020-May/003957.html] Une installation basique devrait utiliser moins de 2 GiB d'espace disque. Enfin, le processus d'installation nécessitant le téléchargement de paquets depuis un dépôt distant, ce guide considère qu'une connexion Internet est disponible.<br />
<br />
== Préparation avant l'installation ==<br />
<br />
=== Obtenir l'image d'installation ===<br />
<br />
Visitez la page de [https://archlinux.org/download/ Téléchargement] et, selon la façon dont vous voulez démarrer, récupérez l'image ISO ou bien l'image «netboot» ainsi que la signature [[GnuPG]] correspondante.<br />
<br />
=== Vérifier la signature ===<br />
<br />
Il est recommandé de vérifier la signature de l'image avant de l'utiliser, particulièrement lors du téléchargement depuis un ''miroir HTTP'', puisque ceux-ci sont sujet à être interceptés pour [https://www2.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html fournir des fichiers malveillants]. <br />
<br />
Depuis un système avec [[GnuPG]] installé, faites cette vérification en téléchargeant la ''signature PGP'' (dans ''Checksums'' sur [https://archlinux.org/download/ la page de téléchargement]) dans le dossier contenant l'ISO et en la [[GnuPG#Verify a signature|vérifiant]] avec: <br />
<br />
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-''version''-x86_64.iso.sig<br />
<br />
Depuis une installation Arch Linux existante, vous pouvez également utiliser la commande:<br />
<br />
$ pacman-key -v archlinux-''version''-x86_64.iso.sig<br />
<br />
{{Note| :<br />
* La signature elle-même pourrait être manipulée si elle est téléchargée à partir d'un site miroir, au lieu de l'être à partir de archlinux.org comme ci-dessus. Dans ce cas, assurez-vous que la clé publique, qui est utilisée pour décoder la signature, soit signée par une autre clé digne de confiance. La commande gpg affichera l'empreinte de la clé publique.<br />
* Une autre méthode pour vérifier l'authenticité de la signature consiste à s'assurer que l'empreinte de la clé publique est identique à l'empreinte de la clé du [https://archlinux.org/people/developers/ développeur Arch Linux] qui a signé le fichier ISO. Voir [[Wikipedia:Public-key cryptography]] pour plus d'informations sur le processus d'authentification des clés par une clé publique.}}<br />
<br />
=== Préparer un support d'installation ===<br />
<br />
L'image d'installation peut être déployée sur la machine concernée via une [[USB_flash_installation_medium_(Français)|clé USB]], un [[Optical disc drive|disque optique]], ou par réseau avec [[PXE]] : consultez l'article approprié pour préparer vous-même un support d'installation selon de l'image choisie.<br />
<br />
=== Démarrer l'environnement «live» ===<br />
<br />
{{note|Les images d'Arch Linux ne prennent pas en charge la technologie ''Secure Boot'' et vous devrez [[Unified Extensible Firmware Interface/Secure Boot#Disabling Secure Boot|le désactiver]] pour démarrer depuis le support d'installation. Vous pourrez si vous le souhaitez le configurer une fois l'installation terminée, en suivant ces [[Secure Boot|instructions]].}}<br />
<br />
# Choisissez le périphérique de démarrage pour utiliser le support préparé précédemment. Généralement, la manipulation consiste à appuyer sur une touche — fréquemment mentionnée sur l'écran d'accueil de votre machine — durant le [[Wikipedia:fr:Power-on self-test (informatique)|POST]]. Référez-vous au manuel de votre carte mère pour plus de détails.<br />
# Lorsque le menu du support d'installation apparaît, sélectionnez ''Arch Linux install medium'' et validez avec la touche {{ic|Entrée}}. {{Tip (Français)|L'image d'installation utilise [[systemd-boot]] pour le démarrage en mode UEFI et [[Syslinux (Français)|Syslinux]] pour le mode BIOS. Consultez [https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams] pour une liste des [[Kernel parameters#Configuration|paramètres de démarrage]].}}<br />
# Vous serez connecté dans la première [[Wikipedia:fr:Terminal (informatique)|console virtuelle]] sous l'utilisateur ''root'' et vous verrez une invite de commande [[zsh (Français)|zsh]]<br />
<br />
Pour changer de console — par exemple pour consulter ce guide avec [https://lynx.invisible-island.net/lynx_help/Lynx_users_guide.html Lynx] pendant l'installation — vous pouvez utiliser {{ic|Alt+''flèches de direction''}}. Pour [[modifier]] les fichiers de configuration, {{man|1|mcedit}}, [[nano (Français)#Utilisation|nano]] et [[vim (Français)#Utilisation|vim]] sont disponibles. Voir [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64] pour consulter la liste des paquets inclus dans le support d'installation.<br />
<br />
=== Disposition du clavier en console ===<br />
<br />
[[Linux console (Français)/Keyboard configuration (Français)|La disposition]] par défaut est le clavier [[Wikipedia:File:KB United States-NoAltGr.svg|US]]. Les dispositions disponibles peuvent être listées par : <br />
<br />
# ls /usr/share/kbd/keymaps/**/*.map.gz<br />
<br />
Pour modifier la disposition du [[:category:Keyboard configuration (Français)|clavier]], utilisez la commande {{man|1|loadkeys}} en omettant le chemin du fichier ainsi que l'extension. Par exemple pour la disposition [[Wikipedia:File:Clavier-Azerty.svg|Française]] vous pouvez utiliser : <br />
<br />
# loadkeys fr-latin1<br />
<br />
[[Console fonts|Les polices de la console]] se trouvent dans {{ic|/usr/share/kbd/consolefonts/}} et peuvent de même être modifiées avec {{man|8|setfont}}.<br />
<br />
=== Vérifier le mode de démarrage ===<br />
<br />
Pour connaître le «mode de démarrage», consultez le répertoire [[efivars]]:<br />
# ls /sys/firmware/efi/efivars<br />
Si la commande affiche le dossier sans erreur, alors le système est démarré en mode UEFI. Si le répertoire n’existe pas, le système a probablement démarré en mode [[Wikipedia:BIOS|BIOS]] (ou [[Wikipedia:Compatibility Support Module|CSM]]). Si le système n'a pas démarré dans le mode souhaité, consultez le manuel de votre carte mère.<br />
<br />
=== Connexion à Internet ===<br />
<br />
Pour configurer la connexion réseau dans l'image ''live'', suivez ces étapes :<br />
<br />
* Vérifiez que votre [[Network_configuration_(Français)|Carte réseau]] est répertoriée et activée, par exemple avec {{man|8|ip-link}}: {{bc|# ip link}}<br />
* Pour les connections sans fil comme le ''Wi-Fi'' ou [[Wikipedia:fr:Réseau_de_téléphonie_mobile|''les réseaux mobiles (4G...)'']], vérifiez que l'utilitaire [[rfkill]] ne bloque pas l'interface.<br />
* Connexion au réseau: <br />
** Ethernet—Connectez le câble.<br />
** Wi-Fi—Authentifiez-vous sur le réseau sans fil avec [[iwctl]].<br />
** Réseaux mobiles—Connectez-vous au réseau avec l'utilitaire [[mmcli]].<br />
* Configurez votre connexion réseau:<br />
** [[DHCP]]: l'adressage dynamique des adresses IP et des serveurs DNS (fourni par [[systemd-networkd (Français)]] et [[systemd-resolved]] devraient fonctionner par défaut) pour les protocoles [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network Wi-Fi] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network Mobiles].<br />
** Adresse IP statique : suivez [[Network configuration#Static IP address]].<br />
* La connexion peut être confirmée avec [[Wikipedia:ping (networking utility)|ping]]: {{bc|# ping archlinux.org}}<br />
<br />
{{note|Dans l'image d'installation, [[systemd-networkd (Français)]], [[systemd-resolved]], [[iwd]] et [[ModemManager]] sont préconfigurés et activés par défaut. Ce ne sera pas le cas du système installé.}}<br />
<br />
=== Mise à jour de l'horloge système ===<br />
<br />
Utilisez {{man|1|timedatectl}} pour vous assurer que l'horloge système est correctement réglée.<br />
<br />
# timedatectl set-ntp true<br />
<br />
Pour vérifier l'état du service, utilisez {{ic|timedatectl status}}.<br />
<br />
=== Partitionnement des disques ===<br />
<br />
Une fois reconnus par le système ''live'', les disques se verront affectés un [[block device|périphérique de type bloc]] tel que {{ic|/dev/sda}}, {{ic|/dev/nvme0n1}} ou {{ic|/dev/mmcblk0}}. Pour identifier ces périphériques, utilisez [[lsblk]] ou ''fdisk''.<br />
<br />
# fdisk -l<br />
<br />
Les résultats se terminant par: {{ic|rom}}, {{ic|loop}} ou {{ic|airoot}} peuvent être ignorés.<br />
<br />
Les [[partition]]s suivantes sont '''nécessaires''' sur un périphériques choisi:<br />
<br />
* Une partition [[Wikipedia:Root directory|racine]] {{ic|/}}.<br />
* Pour démarrer en mode [[UEFI]]: une [[EFI system partition (Français)|partition EFI]].<br />
<br />
Si vous souhaitez utiliser [[LVM]], [[dm-crypt|un chiffrement de votre système]] ou encore [[RAID]], faites le maintenant.<br />
<br />
* Utilisez [[fdisk]] or [[parted]] pour modifier la table de partitions. Par exemple :<br />
# fdisk ''/dev/disque_en_question''<br />
<br />
{{Note|<br />
* Si votre disque n’apparaît pas, vérifiez [[Partitioning#Drives are not visible when firmware RAID is enabled]].<br />
* Si le disque depuis lequel vous souhaitez démarrer [[EFI system partition (Français)#Vérifier s'il y a une partition existante|possède déjà une partition EFI]], n'en recréez pas une autre mais utilisez la partition pré-existante. <br />
* La [[Swap (Français)]] peut être définie sur un [[swap file|fichier d'échange]] pour les systèmes de fichier qui le prennent en charge.<br />
}}<br />
<br />
==== Exemples de Partitionnement ====<br />
<br />
{| class="wikitable"<br />
|+ UEFI avec [[GPT]]<br />
|-<br />
! Point de Montage<br />
! Partition<br />
! [[Wikipedia:GUID Partition Table#Partition type GUIDs|Type de partition]]<br />
! Taille suggérée<br />
|-<br />
| {{ic|/mnt/boot}}<sup>1</sup><br />
| {{ic|/dev/''efi_system_partition''}}<br />
| [[EFI system partition (Français)|EFI system partition]]<br />
| Au moins 300 MiB<br />
|-<br />
| {{ic|[SWAP]}}<br />
| {{ic|/dev/''partition_d'échange''}}<br />
| Linux swap<br />
| Plus de 512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/''partition_racine''}}<br />
| Linux x86-64 root (/)<br />
| Le reste du disque<br />
|}<br />
# D'autres points de montage, tels que {{ic|/mnt/efi}} ne devrait être envisagé que si le chargeur d'amorçage utilisé est capable de charger le [[Kernel_(Français)|noyau]] et l'[[Arch boot process (Français)#Initramfs|initramfs]] directement depuis la partition racine. Voir l'avertissement dans [[Arch boot process (Français)#Chargeur d'amorçage]].<br />
{| class="wikitable"<br />
|+ BIOS avec [[MBR]]<br />
|-<br />
! Point de Montage<br />
! Partition<br />
! [[Wikipedia:Partition type|Type de Partition]]<br />
! Taille suggérée<br />
|-<br />
| {{ic|[SWAP]}}<br />
| {{ic|/dev/''partition_d'échange''}}<br />
| Linux swap<br />
| Plus de 512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/''partition_racine''}}<br />
| Linux<br />
| Le reste du disque<br />
|}<br />
<br />
Pour d'autres exemples: [[Partitioning#Example layouts]].<br />
<br />
=== Formatage des partitions ===<br />
<br />
Une fois les partitions crées, celles-ci doivent être formatées avec un [[File_systems|système de fichier]] approprié. Consultez [[File systems#Create a file system]] pour plus de détails. <br />
<br />
Par exemple, pour créer un système de fichier {{ic|ext4}} sur {{ic|/dev/''partition_racine''}}, utilisez :<br />
<br />
# mkfs.ext4 /dev/''partition_racine''<br />
<br />
Si vous avez crée une partition [[swap (Français)|d'échange]], initialisez la avec {{man|8|mkswap}}:<br />
<br />
# mkswap /dev/''partition_d'échange''<br />
<br />
{{Note|Pour les configurations avec LVM, chiffrement ou RAID, remplacez {{ic|/dev/''*_partition''}} par le chemin vers le périphérique de type bloc approprié.}}<br />
<br />
Si vous avez créé une partition système EFI, [[EFI system partition (Français)#Formater la partition|formatez-la]] en FAT32 avec {{man|8|mkfs.fat}}.<br />
<br />
{{Attention|Ne formatez la partition système EFI que si vous l'avez créée pendant le partitionnement. S'il y avait déjà une partition système EFI sur le disque précédemment, son formatage peut détruire les chargeurs d'amorçage des autres systèmes d'exploitation installés.}}<br />
<br />
# mkfs.fat -F 32 /dev/''efi_system_partition''<br />
<br />
=== Montage des systèmes de fichiers ===<br />
<br />
[[Mount|Montez]] la partition racine dans {{ic|/mnt}}. Par exemple, si la partition racine est {{ic|/dev/''partition_racine''}}:<br />
<br />
# mount /dev/''partition_racine'' /mnt<br />
<br />
Créez tous les points de montage restants (tel {{ic|/mnt/efi}}) en utilisant {{man|1|mkdir}} et montez les partitions correspondantes. <br />
<br />
Pour les systèmes avec un UEFI, montez la partition système EFI : <br />
<br />
# mount /dev/''efi_system_partition'' /mnt/boot<br />
<br />
Si vous avez créé une partition [[swap (Français)|d'échange]], activez-la avec {{man|8|swapon}}:<br />
<br />
# swapon /dev/''partition_d'échange''<br />
<br />
{{man|8|genfstab}} détectera plus tard les systèmes de fichers et l'espace d'échange montés.<br />
<br />
== Installation ==<br />
<br />
=== Sélection du miroir ===<br />
<br />
Les paquets à installér doivent être téléchargés depuis les [[Mirrors (Français)|miroirs]] des dépôts officiels tels que définis dans {{ic|/etc/pacman.d/mirrorlist}}. Sur le système ''live'', après connexion à Internet, [[Reflector (Français)|reflector]] met à jour la liste des miroirs en sélectionnant les 20 miroirs les plus récemment synchronisés et en les triant par vitesse de téléchargement. <br />
<br />
Plus le miroir se trouve haut dans la liste, plus grande est sa priorité lors d'un téléchargement. Vérifiez le contenu de {{ic|/etc/pacman.d/mirrorlist}} et modifiez le si besoin. Placez les miroirs les plus proches géographiquement en haut de la liste, bien que d'autres critères sont à prendre en compte<br />
<br />
Par exemple pour trouver un [[Mirrors (Français)|miroir]] plus proche de chez vous (et/ou plus rapide) en utilisant {{ic |reflector}}:<br />
# reflector --country France --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist<br />
Cette commande devrait sélectionner les miroirs HTTPS synchronisés ces 12 dernières heures en France, les trier par vitesse de téléchargement, et mettre à jour le fichier {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{ic|pacstrap}} copiera plus tard ce fichier sur le nouveau système, prendre votre temps sur cette étape peut donc vous en faire gagner plus tard.<br />
<br />
=== Installation des paquets essentiels ===<br />
<br />
Utilisez le script {{man|8|pacstrap}} en lui indiquant le dossier correspondant à la racine du système suivi des paquets ou groupes à installer (séparés par un espace). Pour le système de base, installez le "méta-paquet" {{Pkg|base}}, le [[Kernel (Français)|noyau]], et le microprogramme pour les périphériques les plus courants:<br />
<br />
# pacstrap /mnt base linux linux-firmware<br />
<br />
{{Astuce|<br />
* Vous pouvez remplacer {{Pkg|linux}} par un autre noyau de votre choix ou l'omettre dans l'installation d'un [[Wikipedia:Container (virtualization)|container]].<br />
* Vous pouvez également omettre le microprogramme si vous installez dans une machine virtuelle un container.}}<br />
<br />
Le paquet {{Pkg|base}} ne contient pas tous les outils de l'image d'installation, certains pourraient être nécessaires à l'obtention d'un système de base entièrement fonctionnel. Pensez à installer en particulier :<br />
<br />
* les utilitaires nécessaires à la gestion des [[File system|systèmes de fichiers]],<br />
* les utilitaires pour accéder aux partitions [[RAID (Français)|RAID]] ou [[LVM (Français)|LVM]],<br />
* les microprogrammes spécifiques à des périphériques qui ne seraient pas déjà inclus dans {{Pkg|linux-firmware}}, (comme {{pkg|sof-firmware}} pour les cartes son),<br />
* les logiciels nécessaires à votre [[Network configuration (Français)|connexion au réseau]]<br />
* un [[:Category:Text_editors (Français)|Éditeur de texte]]<br />
* les paquets de documentation comme {{Pkg|man-db}}, {{Pkg|man-pages}} et {{Pkg|texinfo}}.<br />
<br />
Pour installer d'autres paquets ou groupes, ajoutez leur noms à la commande {{ic|pacstrap}} ci-dessus (séparés par des espaces) ou utilisez [[Pacman (Français)|pacman]] pendant la [[#Configuration du système]] après la commande {{ic|arch-chroot}}. <br />
<br />
A titre d'exemple, consultez [https://gitlab.archlinux.org/archlinux/archiso/blob/master/configs/releng/packages.x86_64 la liste des paquets disponibles sur le média d'installation] et la [[List of applications|liste des applications]].<br />
<br />
== Configuration du système ==<br />
<br />
=== Fstab ===<br />
<br />
Générez le fichier [[Fstab (Français)|fstab]] (utiliser {{ic|-U}} ou {{ic|-L}} pour définir par UUID ou étiquettes, respectivement):<br />
# genfstab -U /mnt >> /mnt/etc/fstab<br />
<br />
Vérifiez le fichier {{ic|/mnt/etc/fstab}} obtenu, et modifiez-le en cas d'erreur.<br />
<br />
=== Chroot ===<br />
<br />
[[Change_root|Chrooter]] dans le nouveau système:<br />
# arch-chroot /mnt<br />
<br />
=== Fuseau Horaire ===<br />
<br />
Définissez le [[System_time_(Français)#Fuseau_horaire|fuseau horaire]], par exemple pour la France:<br />
# ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime<br />
<br />
Lancez {{man|8|hwclock}} pour générer {{ic|/etc/adjtime}}:<br />
<br />
# hwclock --systohc<br />
<br />
Cette commande repose sur l'hypothèse que l'horloge matérielle est réglée sur [[Wikipedia:fr:UTC|UTC]]. Consultez [[System_time_(Français)#UTC_/_Locale]] pour plus de détails.<br />
<br />
=== Locales ===<br />
<br />
Éditez {{ic|/etc/locale.gen}} et dé-commentez votre [[Locale (Français)|locale]], puis générez les locales avec la commande suivante:<br />
<br />
# locale-gen<br />
<br />
Créez le fichier {{man|5|locale.conf}} et [[Locale_(Français)#Configurer_la_locale_pour_tout_le_système|définissez la variable LANG]] correspondante :<br />
<br />
{{hc|1=/etc/locale.conf|2=<br />
LANG=''fr_FR.UTF-8''<br />
}}<br />
<br />
Vous pouvez spécifier la locale pour la session courante (afin d'éviter des messages d'alerte par la suite) avec la commande:<br />
# export LANG=fr_FR.UTF-8<br />
<br />
Éditez le fichier {{man|5|vconsole.conf}} afin d'y spécifier la [[Linux_console (Français)/Keyboard_configuration (Français)#Obtenir la liste des dispositions disponibles|disposition de clavier]] que vous souhaitez conserver :<br />
<br />
{{hc|1=/etc/vconsole.conf|2=<br />
KEYMAP=''fr-latin1''<br />
}}<br />
<br />
=== Configuration réseau ===<br />
<br />
Créez le fichier [[Network_configuration_(Français)#Nom_de_la_machine|/etc/hostname]] :<br />
<br />
{{hc|/etc/hostname|<br />
''lenomdemamachine''<br />
}}<br />
<br />
Terminez la [[Network_configuration_(Français)|configuration du réseau]] pour le nouvel environnement installé. Il se peut que vous deviez installer un logiciel de [[network management|gestion de réseau]] spécifique.<br />
<br />
=== Initramfs ===<br />
<br />
La création d'un nouvel ''initramfs'' n'est généralement pas nécessaire, car [[Mkinitcpio_(Français)|mkinitcpio]] a été lancé lors de l'installation du [[Kernel_(Français)|noyau]] avec ''pacstrap''.<br />
<br />
Pour [[Install Arch Linux on LVM#Adding mkinitcpio hooks|LVM]], le [[Dm-crypt_(Français)|chiffrement]] ou [[RAID_(Français)#Ajout_à_l'image_du_noyau|RAID]], modifiez {{man|5|mkinitcpio.conf}} et recréez l'image ''initramfs'':<br />
<br />
# mkinitcpio -P<br />
<br />
=== Mot de passe administrateur ===<br />
<br />
Définissez un mot passe pour '''root''':<br />
# passwd<br />
<br />
=== Installation d'un chargeur d'amorçage ===<br />
<br />
Choisissez et installez un [[chargeur d'amorçage]] adapté. Si vous avez un CPU Intel ou AMD, pensez à activer également les mises-à-jour du [[microcode|microprogramme]].<br />
<br />
== Redémarrer ==<br />
<br />
Sortez de l'environnement ''chroot'' en tapant ({{ic|exit}} ou par le raccourci {{ic|Ctrl+D}}). <br />
<br />
Si vous le souhaitez, démontez manuellement toutes les partitions avec {{ic|umount -R /mnt}} : cela permet de détecter les partitions "occupées" et d'en trouver la cause avec {{man|1|fuser}}.<br />
<br />
Enfin, redémarrez la machine en tapant {{ic|reboot}} : toutes les partitions encore montées seront automatiquement démontées par ''systemd''. N'oubliez pas de retirer le support d'installation et vous pourrez vous connecter au nouveau système avec le compte root.<br />
<br />
== Après le redémarrage ==<br />
<br />
Consultez les [[General_recommendations_(Français)|Recommandations générales]] pour des indications sur l'administration de votre système et des tutoriels de post-installation (comme la création de comptes utilisateurs non privilégiés, la configuration d'une interface utilisateur graphique, du son ou d'un pavé tactile).<br />
<br />
Pour une liste des applications pouvant présenter un intérêt, voir la [[List of applications|liste des applications]].</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Installation_guide_(Fran%C3%A7ais)&diff=709888Installation guide (Français)2022-01-13T17:13:25Z<p>Leeo97one: /* Fstab */ L'option -p est déjà activée par défaut.</p>
<hr />
<div>[[Category:Installation process (Français)]]<br />
[[bg:Installation guide]]<br />
[[de:Arch Install Scripts]]<br />
[[el:Installation guide]]<br />
[[en:Installation guide]]<br />
[[es:Installation guide]]<br />
[[fa:راهنمای تازهکاران]]<br />
[[fi:Installation guide]]<br />
[[it:Installation guide]]<br />
[[ja:インストールガイド]]<br />
[[ko:Installation guide]]<br />
[[pl:Installation guide]]<br />
[[pt:Installation guide]]<br />
[[ru:Installation guide]]<br />
[[sv:Installation guide]]<br />
[[th:Installation guide]]<br />
[[tr:Installation guide]]<br />
[[uk:Installation guide]]<br />
[[zh-hans:Installation guide]]<br />
[[zh-hant:Installation guide]]<br />
Ce document est un guide pour l'installation d'[[Arch_Linux_(Français)|Arch Linux]] au moyen du système ''live'' Archiso démarré depuis le support d'installation issue des images officielles. Le support d'installation offre des fonctionnalités d'accessibilité décrites à la page [[Install Arch Linux with accessibility options (Français)|Installer Arch Linux avec les options d'accessibilité]]. Pour les autres moyens d'installation, voir [[:Category:Installation process (Français)]].<br />
<br />
Avant installation, il est conseillé de consulter la [[Frequently asked questions (Français)|FAQ]]. Pour les conventions utilisées dans ce document, voir [[Help:Reading (Français)|l'aide à la lecture]]. En particulier, les exemple de code contiennent parfois des champs (notés en {{ic|''italique''}}) que vous devez modifier manuellement.<br />
<br />
Pour de plus amples instructions, se référer aux articles respectifs du [[ArchWiki]] ainsi que les [[man page]]s en liens dans ce guide. Pour une aide interactive, les [[Arch IRC channels (Français)|Canaux IRC Arch]] ainsi que le [https://bbs.archlinux.org/ forum international] et le [https://forums.archlinux.fr forum francophone] sont disponibles.<br />
<br />
Arch Linux devrait fonctionner sur n'importe quelle machine utilisant l'architecture [[Wikipedia:fr:X86-64|x86_64]] dotée d'un minimum de 512 MiB de RAM, bien que plus de mémoire soit nécessaire pour démarrer le système ''live'' en vue de l'installation. [https://lists.archlinux.org/pipermail/arch-releng/2020-May/003957.html] Une installation basique devrait utiliser moins de 2 GiB d'espace disque. Enfin, le processus d'installation nécessitant le téléchargement de paquets depuis un dépôt distant, ce guide considère qu'une connexion Internet est disponible.<br />
<br />
== Préparation avant l'installation ==<br />
<br />
=== Obtenir l'image d'installation ===<br />
<br />
Visitez la page de [https://archlinux.org/download/ Téléchargement] et, selon la façon dont vous voulez démarrer, récupérez l'image ISO ou bien l'image «netboot» ainsi que la signature [[GnuPG]] correspondante.<br />
<br />
=== Vérifier la signature ===<br />
<br />
Il est recommandé de vérifier la signature de l'image avant de l'utiliser, particulièrement lors du téléchargement depuis un ''miroir HTTP'', puisque ceux-ci sont sujet à être interceptés pour [https://www2.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html fournir des fichiers malveillants]. <br />
<br />
Depuis un système avec [[GnuPG]] installé, faites cette vérification en téléchargeant la ''signature PGP'' (dans ''Checksums'' sur [https://archlinux.org/download/ la page de téléchargement]) dans le dossier contenant l'ISO et en la [[GnuPG#Verify a signature|vérifiant]] avec: <br />
<br />
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-''version''-x86_64.iso.sig<br />
<br />
Depuis une installation Arch Linux existante, vous pouvez également utiliser la commande:<br />
<br />
$ pacman-key -v archlinux-''version''-x86_64.iso.sig<br />
<br />
{{Note| :<br />
* La signature elle-même pourrait être manipulée si elle est téléchargée à partir d'un site miroir, au lieu de l'être à partir de archlinux.org comme ci-dessus. Dans ce cas, assurez-vous que la clé publique, qui est utilisée pour décoder la signature, soit signée par une autre clé digne de confiance. La commande gpg affichera l'empreinte de la clé publique.<br />
* Une autre méthode pour vérifier l'authenticité de la signature consiste à s'assurer que l'empreinte de la clé publique est identique à l'empreinte de la clé du [https://archlinux.org/people/developers/ développeur Arch Linux] qui a signé le fichier ISO. Voir [[Wikipedia:Public-key cryptography]] pour plus d'informations sur le processus d'authentification des clés par une clé publique.}}<br />
<br />
=== Préparer un support d'installation ===<br />
<br />
L'image d'installation peut être déployée sur la machine concernée via une [[USB_flash_installation_medium_(Français)|clé USB]], un [[Optical disc drive|disque optique]], ou par réseau avec [[PXE]] : consultez l'article approprié pour préparer vous-même un support d'installation selon de l'image choisie.<br />
<br />
=== Démarrer l'environnement «live» ===<br />
<br />
{{note|Les images d'Arch Linux ne prennent pas en charge la technologie ''Secure Boot'' et vous devrez [[Unified Extensible Firmware Interface/Secure Boot#Disabling Secure Boot|le désactiver]] pour démarrer depuis le support d'installation. Vous pourrez si vous le souhaitez le configurer une fois l'installation terminée, en suivant ces [[Secure Boot|instructions]].}}<br />
<br />
# Choisissez le périphérique de démarrage pour utiliser le support préparé précédemment. Généralement, la manipulation consiste à appuyer sur une touche — fréquemment mentionnée sur l'écran d'accueil de votre machine — durant le [[Wikipedia:fr:Power-on self-test (informatique)|POST]]. Référez-vous au manuel de votre carte mère pour plus de détails.<br />
# Lorsque le menu du support d'installation apparaît, sélectionnez ''Arch Linux install medium'' et validez avec la touche {{ic|Entrée}}. {{Tip (Français)|L'image d'installation utilise [[systemd-boot]] pour le démarrage en mode UEFI et [[Syslinux (Français)|Syslinux]] pour le mode BIOS. Consultez [https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams] pour une liste des [[Kernel parameters#Configuration|paramètres de démarrage]].}}<br />
# Vous serez connecté dans la première [[Wikipedia:fr:Terminal (informatique)|console virtuelle]] sous l'utilisateur ''root'' et vous verrez une invite de commande [[zsh (Français)|zsh]]<br />
<br />
Pour changer de console — par exemple pour consulter ce guide avec [https://lynx.invisible-island.net/lynx_help/Lynx_users_guide.html Lynx] pendant l'installation — vous pouvez utiliser {{ic|Alt+''flèches de direction''}}. Pour [[modifier]] les fichiers de configuration, {{man|1|mcedit}}, [[nano (Français)#Utilisation|nano]] et [[vim (Français)#Utilisation|vim]] sont disponibles. Voir [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64] pour consulter la liste des paquets inclus dans le support d'installation.<br />
<br />
=== Disposition du clavier en console ===<br />
<br />
[[Linux console (Français)/Keyboard configuration (Français)|La disposition]] par défaut est le clavier [[Wikipedia:File:KB United States-NoAltGr.svg|US]]. Les dispositions disponibles peuvent être listées par : <br />
<br />
# ls /usr/share/kbd/keymaps/**/*.map.gz<br />
<br />
Pour modifier la disposition du [[:category:Keyboard configuration (Français)|clavier]], utilisez la commande {{man|1|loadkeys}} en omettant le chemin du fichier ainsi que l'extension. Par exemple pour la disposition [[Wikipedia:File:Clavier-Azerty.svg|Française]] vous pouvez utiliser : <br />
<br />
# loadkeys fr-latin1<br />
<br />
[[Console fonts|Les polices de la console]] se trouvent dans {{ic|/usr/share/kbd/consolefonts/}} et peuvent de même être modifiées avec {{man|8|setfont}}.<br />
<br />
=== Vérifier le mode de démarrage ===<br />
<br />
Pour connaître le «mode de démarrage», consultez le répertoire [[efivars]]:<br />
# ls /sys/firmware/efi/efivars<br />
Si la commande affiche le dossier sans erreur, alors le système est démarré en mode UEFI. Si le répertoire n’existe pas, le système a probablement démarré en mode [[Wikipedia:BIOS|BIOS]] (ou [[Wikipedia:Compatibility Support Module|CSM]]). Si le système n'a pas démarré dans le mode souhaité, consultez le manuel de votre carte mère.<br />
<br />
=== Connexion à Internet ===<br />
<br />
Pour configurer la connexion réseau dans l'image ''live'', suivez ces étapes :<br />
<br />
* Vérifiez que votre [[Network_configuration_(Français)|Carte réseau]] est répertoriée et activée, par exemple avec {{man|8|ip-link}}: {{bc|# ip link}}<br />
* Pour les connections sans fil comme le ''Wi-Fi'' ou [[Wikipedia:fr:Réseau_de_téléphonie_mobile|''les réseaux mobiles (4G...)'']], vérifiez que l'utilitaire [[rfkill]] ne bloque pas l'interface.<br />
* Connexion au réseau: <br />
** Ethernet—Connectez le câble.<br />
** Wi-Fi—Authentifiez-vous sur le réseau sans fil avec [[iwctl]].<br />
** Réseaux mobiles—Connectez-vous au réseau avec l'utilitaire [[mmcli]].<br />
* Configurez votre connexion réseau:<br />
** [[DHCP]]: l'adressage dynamique des adresses IP et des serveurs DNS (fourni par [[systemd-networkd (Français)]] et [[systemd-resolved]] devraient fonctionner par défaut) pour les protocoles [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network Wi-Fi] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network Mobiles].<br />
** Adresse IP statique : suivez [[Network configuration#Static IP address]].<br />
* La connexion peut être confirmée avec [[Wikipedia:ping (networking utility)|ping]]: {{bc|# ping archlinux.org}}<br />
<br />
{{note|Dans l'image d'installation, [[systemd-networkd (Français)]], [[systemd-resolved]], [[iwd]] et [[ModemManager]] sont préconfigurés et activés par défaut. Ce ne sera pas le cas du système installé.}}<br />
<br />
=== Mise à jour de l'horloge système ===<br />
<br />
Utilisez {{man|1|timedatectl}} pour vous assurer que l'horloge système est correctement réglée.<br />
<br />
# timedatectl set-ntp true<br />
<br />
Pour vérifier l'état du service, utilisez {{ic|timedatectl status}}.<br />
<br />
=== Partitionnement des disques ===<br />
<br />
Une fois reconnus par le système ''live'', les disques se verront affectés un [[block device|périphérique de type bloc]] tel que {{ic|/dev/sda}}, {{ic|/dev/nvme0n1}} ou {{ic|/dev/mmcblk0}}. Pour identifier ces périphériques, utilisez [[lsblk]] ou ''fdisk''.<br />
<br />
# fdisk -l<br />
<br />
Les résultats se terminant par: {{ic|rom}}, {{ic|loop}} ou {{ic|airoot}} peuvent être ignorés.<br />
<br />
Les [[partition]]s suivantes sont '''nécessaires''' sur un périphériques choisi:<br />
<br />
* Une partition [[Wikipedia:Root directory|racine]] {{ic|/}}.<br />
* Pour démarrer en mode [[UEFI]]: une [[EFI system partition (Français)|partition EFI]].<br />
<br />
Si vous souhaitez utiliser [[LVM]], [[dm-crypt|un chiffrement de votre système]] ou encore [[RAID]], faites le maintenant.<br />
<br />
* Utilisez [[fdisk]] or [[parted]] pour modifier la table de partitions. Par exemple :<br />
# fdisk ''/dev/disque_en_question''<br />
<br />
{{Note|<br />
* Si votre disque n’apparaît pas, vérifiez [[Partitioning#Drives are not visible when firmware RAID is enabled]].<br />
* Si le disque depuis lequel vous souhaitez démarrer [[EFI system partition (Français)#Vérifier s'il y a une partition existante|possède déjà une partition EFI]], n'en recréez pas une autre mais utilisez la partition pré-existante. <br />
* La [[Swap (Français)]] peut être définie sur un [[swap file|fichier d'échange]] pour les systèmes de fichier qui le prennent en charge.<br />
}}<br />
<br />
==== Exemples de Partitionnement ====<br />
<br />
{| class="wikitable"<br />
|+ UEFI avec [[GPT]]<br />
|-<br />
! Point de Montage<br />
! Partition<br />
! [[Wikipedia:GUID Partition Table#Partition type GUIDs|Type de partition]]<br />
! Taille suggérée<br />
|-<br />
| {{ic|/mnt/boot}}<sup>1</sup><br />
| {{ic|/dev/''efi_system_partition''}}<br />
| [[EFI system partition (Français)|EFI system partition]]<br />
| Au moins 300 MiB<br />
|-<br />
| {{ic|[SWAP]}}<br />
| {{ic|/dev/''partition_d'échange''}}<br />
| Linux swap<br />
| Plus de 512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/''partition_racine''}}<br />
| Linux x86-64 root (/)<br />
| Le reste du disque<br />
|}<br />
# D'autres points de montage, tels que {{ic|/mnt/efi}} ne devrait être envisagé que si le chargeur d'amorçage utilisé est capable de charger le [[Kernel_(Français)|noyau]] et l'[[Arch boot process (Français)#Initramfs|initramfs]] directement depuis la partition racine. Voir l'avertissement dans [[Arch boot process (Français)#Chargeur d'amorçage]].<br />
{| class="wikitable"<br />
|+ BIOS avec [[MBR]]<br />
|-<br />
! Point de Montage<br />
! Partition<br />
! [[Wikipedia:Partition type|Type de Partition]]<br />
! Taille suggérée<br />
|-<br />
| {{ic|[SWAP]}}<br />
| {{ic|/dev/''partition_d'échange''}}<br />
| Linux swap<br />
| Plus de 512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/''partition_racine''}}<br />
| Linux<br />
| Le reste du disque<br />
|}<br />
<br />
Pour d'autres exemples: [[Partitioning#Example layouts]].<br />
<br />
=== Formatage des partitions ===<br />
<br />
Une fois les partitions crées, celles-ci doivent être formatées avec un [[File_systems|système de fichier]] approprié. Consultez [[File systems#Create a file system]] pour plus de détails. <br />
<br />
Par exemple, pour créer un système de fichier {{ic|ext4}} sur {{ic|/dev/''partition_racine''}}, utilisez :<br />
<br />
# mkfs.ext4 /dev/''partition_racine''<br />
<br />
Si vous avez crée une partition [[swap (Français)|d'échange]], initialisez la avec {{man|8|mkswap}}:<br />
<br />
# mkswap /dev/''partition_d'échange''<br />
<br />
{{Note|Pour les configurations avec LVM, chiffrement ou RAID, remplacez {{ic|/dev/''*_partition''}} par le chemin vers le périphérique de type bloc approprié.}}<br />
<br />
Si vous avez créé une partition système EFI, [[EFI system partition (Français)#Formater la partition|formatez-la]] en FAT32 avec {{man|8|mkfs.fat}}.<br />
<br />
{{Attention|Ne formatez la partition système EFI que si vous l'avez créée pendant le partitionnement. S'il y avait déjà une partition système EFI sur le disque précédemment, son formatage peut détruire les chargeurs d'amorçage des autres systèmes d'exploitation installés.}}<br />
<br />
# mkfs.fat -F 32 /dev/''efi_system_partition''<br />
<br />
=== Montage des systèmes de fichiers ===<br />
<br />
[[Mount|Montez]] la partition racine dans {{ic|/mnt}}. Par exemple, si la partition racine est {{ic|/dev/''partition_racine''}}:<br />
<br />
# mount /dev/''partition_racine'' /mnt<br />
<br />
Créez tous les points de montage restants (tel {{ic|/mnt/efi}}) en utilisant {{man|1|mkdir}} et montez les partitions correspondantes. <br />
<br />
Pour les systèmes avec un UEFI, montez la partition système EFI : <br />
<br />
# mount /dev/''efi_system_partition'' /mnt/boot<br />
<br />
Si vous avez créé une partition [[swap (Français)|d'échange]], activez-la avec {{man|8|swapon}}:<br />
<br />
# swapon /dev/''partition_d'échange''<br />
<br />
{{man|8|genfstab}} détectera plus tard les systèmes de fichers et l'espace d'échange montés.<br />
<br />
== Installation ==<br />
<br />
=== Sélection du miroir ===<br />
<br />
Les paquets à installér doivent être téléchargés depuis les [[Mirrors (Français)|miroirs]] des dépôts officiels tels que définis dans {{ic|/etc/pacman.d/mirrorlist}}. Sur le système ''live'', après connexion à Internet, [[Reflector (Français)|reflector]] met à jour la liste des miroirs en sélectionnant les 20 miroirs les plus récemment synchronisés et en les triant par vitesse de téléchargement. <br />
<br />
Plus le miroir se trouve haut dans la liste, plus grande est sa priorité lors d'un téléchargement. Vérifiez le contenu de {{ic|/etc/pacman.d/mirrorlist}} et modifiez le si besoin. Placez les miroirs les plus proches géographiquement en haut de la liste, bien que d'autres critères sont à prendre en compte<br />
<br />
Par exemple pour trouver un [[Mirrors (Français)|miroir]] plus proche de chez vous (et/ou plus rapide) en utilisant {{ic |reflector}}:<br />
# reflector --country France --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist<br />
Cette commande devrait sélectionner les miroirs HTTPS synchronisés ces 12 dernières heures en France, les trier par vitesse de téléchargement, et mettre à jour le fichier {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{ic|pacstrap}} copiera plus tard ce fichier sur le nouveau système, prendre votre temps sur cette étape peut donc vous en faire gagner plus tard.<br />
<br />
=== Installation des paquets essentiels ===<br />
<br />
Utilisez le script {{man|8|pacstrap}} en lui indiquant le dossier correspondant à la racine du système suivi des paquets ou groupes à installer (séparés par un espace). Pour le système de base, installez le "méta-paquet" {{Pkg|base}}, le [[Kernel (Français)|noyau]], et le microprogramme pour les périphériques les plus courants:<br />
<br />
# pacstrap /mnt base linux linux-firmware<br />
<br />
{{Astuce|<br />
* Vous pouvez remplacer {{Pkg|linux}} par un autre noyau de votre choix ou l'omettre dans l'installation d'un [[Wikipedia:Container (virtualization)|container]].<br />
* Vous pouvez également omettre le microprogramme si vous installez dans une machine virtuelle un container.}}<br />
<br />
Le paquet {{Pkg|base}} ne contient pas tous les outils de l'image d'installation, certains pourraient être nécessaires à l'obtention d'un système de base entièrement fonctionnel. Pensez à installer en particulier :<br />
<br />
* les utilitaires nécessaires à la gestion des [[File system|systèmes de fichiers]],<br />
* les utilitaires pour accéder aux partitions [[RAID (Français)|RAID]] ou [[LVM (Français)|LVM]],<br />
* les microprogrammes spécifiques à des périphériques qui ne seraient pas déjà inclus dans {{Pkg|linux-firmware}}, (comme {{pkg|sof-firmware}} pour les cartes son),<br />
* les logiciels nécessaires à votre [[Network configuration (Français)|connexion au réseau]]<br />
* un [[:Category:Text_editors (Français)|Éditeur de texte]]<br />
* les paquets de documentation comme {{Pkg|man-db}}, {{Pkg|man-pages}} et {{Pkg|texinfo}}.<br />
<br />
Pour installer d'autres paquets ou groupes, ajoutez leur noms à la commande {{ic|pacstrap}} ci-dessus (séparés par des espaces) ou utilisez [[Pacman (Français)|pacman]] pendant la [[#Configuration du système]] après la commande {{ic|arch-chroot}}. <br />
<br />
A titre d'exemple, consultez [https://gitlab.archlinux.org/archlinux/archiso/blob/master/configs/releng/packages.x86_64 la liste des paquets disponibles sur le média d'installation] et la [[List of applications|liste des applications]].<br />
<br />
== Configuration du système ==<br />
<br />
=== Fstab ===<br />
<br />
Générez le fichier [[Fstab (Français)|fstab]] (utiliser -U ou -L pour définir par UUID ou étiquettes, respectivement):<br />
# genfstab -U /mnt >> /mnt/etc/fstab<br />
<br />
Vérifiez le fichier /mnt/etc/fstab obtenu, et modifiez-le en cas d'erreur.<br />
<br />
=== Chroot ===<br />
<br />
[[Change_root|Chrooter]] dans le nouveau système:<br />
# arch-chroot /mnt<br />
<br />
=== Fuseau Horaire ===<br />
<br />
Définissez le [[System_time_(Français)#Fuseau_horaire|fuseau horaire]], par exemple pour la France:<br />
# ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime<br />
<br />
Lancez {{man|8|hwclock}} pour générer {{ic|/etc/adjtime}}:<br />
<br />
# hwclock --systohc<br />
<br />
Cette commande repose sur l'hypothèse que l'horloge matérielle est réglée sur [[Wikipedia:fr:UTC|UTC]]. Consultez [[System_time_(Français)#UTC_/_Locale]] pour plus de détails.<br />
<br />
=== Locales ===<br />
<br />
Éditez {{ic|/etc/locale.gen}} et dé-commentez votre [[Locale (Français)|locale]], puis générez les locales avec la commande suivante:<br />
<br />
# locale-gen<br />
<br />
Créez le fichier {{man|5|locale.conf}} et [[Locale_(Français)#Configurer_la_locale_pour_tout_le_système|définissez la variable LANG]] correspondante :<br />
<br />
{{hc|1=/etc/locale.conf|2=<br />
LANG=''fr_FR.UTF-8''<br />
}}<br />
<br />
Vous pouvez spécifier la locale pour la session courante (afin d'éviter des messages d'alerte par la suite) avec la commande:<br />
# export LANG=fr_FR.UTF-8<br />
<br />
Éditez le fichier {{man|5|vconsole.conf}} afin d'y spécifier la [[Linux_console (Français)/Keyboard_configuration (Français)#Obtenir la liste des dispositions disponibles|disposition de clavier]] que vous souhaitez conserver :<br />
<br />
{{hc|1=/etc/vconsole.conf|2=<br />
KEYMAP=''fr-latin1''<br />
}}<br />
<br />
=== Configuration réseau ===<br />
<br />
Créez le fichier [[Network_configuration_(Français)#Nom_de_la_machine|/etc/hostname]] :<br />
<br />
{{hc|/etc/hostname|<br />
''lenomdemamachine''<br />
}}<br />
<br />
Terminez la [[Network_configuration_(Français)|configuration du réseau]] pour le nouvel environnement installé. Il se peut que vous deviez installer un logiciel de [[network management|gestion de réseau]] spécifique.<br />
<br />
=== Initramfs ===<br />
<br />
La création d'un nouvel ''initramfs'' n'est généralement pas nécessaire, car [[Mkinitcpio_(Français)|mkinitcpio]] a été lancé lors de l'installation du [[Kernel_(Français)|noyau]] avec ''pacstrap''.<br />
<br />
Pour [[Install Arch Linux on LVM#Adding mkinitcpio hooks|LVM]], le [[Dm-crypt_(Français)|chiffrement]] ou [[RAID_(Français)#Ajout_à_l'image_du_noyau|RAID]], modifiez {{man|5|mkinitcpio.conf}} et recréez l'image ''initramfs'':<br />
<br />
# mkinitcpio -P<br />
<br />
=== Mot de passe administrateur ===<br />
<br />
Définissez un mot passe pour '''root''':<br />
# passwd<br />
<br />
=== Installation d'un chargeur d'amorçage ===<br />
<br />
Choisissez et installez un [[chargeur d'amorçage]] adapté. Si vous avez un CPU Intel ou AMD, pensez à activer également les mises-à-jour du [[microcode|microprogramme]].<br />
<br />
== Redémarrer ==<br />
<br />
Sortez de l'environnement ''chroot'' en tapant ({{ic|exit}} ou par le raccourci {{ic|Ctrl+D}}). <br />
<br />
Si vous le souhaitez, démontez manuellement toutes les partitions avec {{ic|umount -R /mnt}} : cela permet de détecter les partitions "occupées" et d'en trouver la cause avec {{man|1|fuser}}.<br />
<br />
Enfin, redémarrez la machine en tapant {{ic|reboot}} : toutes les partitions encore montées seront automatiquement démontées par ''systemd''. N'oubliez pas de retirer le support d'installation et vous pourrez vous connecter au nouveau système avec le compte root.<br />
<br />
== Après le redémarrage ==<br />
<br />
Consultez les [[General_recommendations_(Français)|Recommandations générales]] pour des indications sur l'administration de votre système et des tutoriels de post-installation (comme la création de comptes utilisateurs non privilégiés, la configuration d'une interface utilisateur graphique, du son ou d'un pavé tactile).<br />
<br />
Pour une liste des applications pouvant présenter un intérêt, voir la [[List of applications|liste des applications]].</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Fonts&diff=634864Fonts2020-09-10T16:19:53Z<p>Leeo97one: /* Monospaced */ added jetbrains-mono</p>
<hr />
<div>[[Category:Fonts]]<br />
[[cs:Fonts]]<br />
[[de:Schriftarten]]<br />
[[es:Fonts]]<br />
[[it:Fonts]]<br />
[[ja:フォント]]<br />
[[ru:Fonts]]<br />
[[zh-hans:Fonts]]<br />
[[zh-hant:Fonts]]<br />
{{Related articles start}}<br />
{{Related|Font configuration}}<br />
{{Related|Linux console#Fonts}}<br />
{{Related|Java Runtime Environment fonts}}<br />
{{Related|Metric-compatible fonts}}<br />
{{Related|Microsoft fonts}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Computer font]]: "A computer font (or font) is an electronic data file containing a set of glyphs, characters, or symbols such as dingbats."<br />
<br />
Note that certain font licenses may impose some legal limitations.<br />
<br />
== Font formats ==<br />
<br />
Most computer fonts used today are in either ''bitmap'' or ''outline'' data formats. <br />
;Bitmap fonts: Consist of a matrix of dots or pixels representing the image of each glyph in each face and size.<br />
;Outline or ''vector'' fonts: Use Bézier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.<br />
<br />
=== Bitmap formats ===<br />
<br />
* [[Wikipedia:Glyph Bitmap Distribution Format|Bitmap Distribution Format]] (BDF) by Adobe<br />
* [[Wikipedia:Portable Compiled Format|Portable Compiled Format]] (PCF) by Xorg<br />
* [[Wikipedia:PC Screen Font|PC Screen Font]] (PSF) used by the Kernel for console fonts, not supported by Xorg (for Unicode PSF files the extension is {{ic|psfu}})<br />
<br />
These formats can also be gzipped. See [[#Bitmap]] for the available bitmap fonts.<br />
<br />
=== Outline formats ===<br />
<br />
* [[Wikipedia:PostScript fonts|PostScript fonts]] by Adobe – has various formats, e.g: Printer Font ASCII (PFA) and Printer Font Binary (PFB)<br />
* [[Wikipedia:TrueType|TrueType]] by Apple and Microsoft (file extension: {{ic|ttf}})<br />
* [[Wikipedia:OpenType|OpenType]] by Microsoft, built on TrueType (file extensions: {{ic|otf}}, {{ic|ttf}})<br />
<br />
For most purposes, the technical differences between TrueType and OpenType can be ignored.<br />
<br />
=== Other formats ===<br />
<br />
The typesetting application [[TeX]] and its companion font software, ''Metafont,'' traditionally renders characters using its own methods. Some file extensions used for fonts from these two programs are {{ic|*pk}}, {{ic|*gf}}, {{ic|mf}} and {{ic|vf}}. Modern versions can also use TrueType and OpenType fonts.<br />
<br />
[https://fontforge.github.io/en-US/ FontForge] ({{Pkg|fontforge}}), a font editing application, can store fonts in its native text-based format, {{ic|sfd}}, ''s''pline ''f''ont ''d''atabase.<br />
<br />
The [http://www.w3.org/TR/SVG/fonts.html SVG] format also has its own font description method.<br />
<br />
== Installation ==<br />
<br />
There are various methods for installing fonts.<br />
<br />
=== Pacman ===<br />
<br />
Fonts and font collections in the enabled repositories can be installed using [[pacman]].<br />
<br />
Available fonts may be found by [[pacman#Querying package databases|querying packages]] (e.g. for {{ic|font}} or {{ic|ttf}}).<br />
<br />
=== Creating a package ===<br />
<br />
You should give pacman the ability to manage your fonts, which is done by [[Creating packages|creating an Arch package]]. These can also be shared with the community in the [[AUR]]. The packages to install fonts are particularly similar; see [[Font packaging guidelines]].<br />
<br />
The family name of a font file can be aquired with the use of {{ic|fc-query}} for example: {{ic|fc-query -f '%{family[0]}\n' /path/to/file}}. The formatting is described in {{man|3|FcPatternFormat}}.<br />
<br />
=== Manual installation ===<br />
<br />
The recommended way of adding fonts that are not in the repositories to your system is described in [[#Creating a package]]. This gives pacman the ability to remove or update them at a later time. Fonts can alternately be installed manually as well.<br />
<br />
To install fonts system-wide (available for all users), move the folder to the {{ic|/usr/share/fonts}} directory. The files need to be readable by every user, use [[chmod]] to set the correct permissions (i.e. at least {{ic|0444}} for files and {{ic|0555}} for directories). To install fonts for only a single user, use {{ic|~/.local/share/fonts/}} ({{ic|~/.fonts/}} is now deprecated).<br />
<br />
For Xserver to load fonts directly (as opposed to the use of a ''font server'') the directory for your newly added font must be added with a FontPath entry. This entry is located in the ''Files'' section [[Xorg#Configuration|of your Xorg configuration file]] (e.g. {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/xorg.conf}}). See [[#Older applications]] for more detail.<br />
<br />
Then update the fontconfig font cache: (usually unnecessary as software using the fontconfig library does this)<br />
<br />
$ fc-cache<br />
<br />
=== Older applications ===<br />
<br />
With older applications that do not support fontconfig (e.g. GTK 1.x applications, and {{ic|xfontsel}}) the index will need to be created in the font directory:<br />
<br />
$ mkfontscale<br />
$ mkfontdir<br />
<br />
Or to include more than one folder with one command:<br />
<br />
$ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash<br />
<br />
Or if fonts were installed in a different sub-folders under the e.g. {{ic|/usr/share/fonts}}:<br />
<br />
$ for dir in * ; do if [ -d "$dir" ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash<br />
<br />
At times the X server may fail to load the fonts directory and you will need to rescan all the {{ic|fonts.dir}} files:<br />
<br />
# xset +fp /usr/share/fonts/misc # Inform the X server of new directories<br />
# xset fp rehash # Forces a new rescan<br />
<br />
To check that the font(s) is included:<br />
<br />
$ xlsfonts | grep fontname<br />
<br />
{{Note|Many packages will automatically configure Xorg to use the font upon installation. If that is the case with your font, this step is not necessary.}}<br />
<br />
This can also be set globally in {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/X11/xorg.conf.d}}.<br />
<br />
Here is an example of the section that must be added to {{ic|/etc/X11/xorg.conf}}. Add or remove paths based on your particular font requirements.<br />
<br />
# Let X.Org know about the custom font directories<br />
Section "Files"<br />
FontPath "/usr/share/fonts/100dpi"<br />
FontPath "/usr/share/fonts/75dpi"<br />
FontPath "/usr/share/fonts/cantarell"<br />
FontPath "/usr/share/fonts/cyrillic"<br />
FontPath "/usr/share/fonts/encodings"<br />
FontPath "/usr/share/fonts/misc"<br />
FontPath "/usr/share/fonts/truetype"<br />
FontPath "/usr/share/fonts/TTF"<br />
FontPath "/usr/share/fonts/util"<br />
EndSection<br />
<br />
=== Pango Warnings ===<br />
<br />
When [http://www.pango.org/ Pango] is in use on your system it will read from [https://www.freedesktop.org/wiki/Software/fontconfig fontconfig] to sort out where to source fonts.<br />
<br />
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'<br />
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'<br />
<br />
If you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the {{Pkg|ttf-liberation}} fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.<br />
<br />
{{hc|# fc-cache|<br />
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs<br />
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs<br />
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs<br />
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs<br />
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs<br />
/var/cache/fontconfig: cleaning cache directory<br />
fc-cache: succeeded<br />
}}<br />
<br />
You can test for a default font being set like so:<br />
<br />
{{hc|$ fc-match|<br />
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"<br />
}}<br />
<br />
== Font packages ==<br />
<br />
This is a selective list that includes many font packages from the [[AUR]] along with those in the official repositories. Fonts are tagged "Unicode" if they have wide [[wikipedia:unicode|Unicode]] support.<br />
<br />
{{Tip|[https://github.com/ternstor/distrofonts Archfonts] is a Python script that can be used to generate an overview of all the TTF fonts found in the official repositories and in the AUR.}}<br />
<br />
=== Bitmap ===<br />
<br />
{{Note|{{Pkg|pango}} 1.44 [https://blogs.gnome.org/mclasen/2019/05/25/pango-future-directions/ dropped support for FreeType in favor of HarfBuzz] thus [https://blogs.gnome.org/mclasen/2019/08/07/pango-1-44-wrap-up/ losing support for traditional BDF/PCF bitmap fonts], so applications like e.g. {{Pkg|gnome-terminal}} will not work with such fonts anymore, showing rectangles instead of glyphs. See {{Bug|63297}}, [https://gitlab.gnome.org/GNOME/pango/issues/386 Pango issue #386] and [https://github.com/harfbuzz/harfbuzz/issues/1897 HarfBuzz issue #1897].}}<br />
<br />
* Default 8x16<br />
* [https://github.com/seraxis/pcf-spectrum-berry Berry] ({{AUR|pcf-spectrum-berry}}) - 8px<br />
* [http://www.dcmembers.com/jibsen/download/61/ Dina] ({{Pkg|dina-font}}) – 6pt, 8pt, 9pt, 10pt, monospaced, based on Proggy<br />
* [http://openlab.jp/efont/unicode/ Efont] ({{AUR|efont-unicode-bdf}}) – 10px, 12px, 14px, 16px, 24px, normal, bold and italic<br />
* [http://font.gohu.org/ Gohu] ({{AUR|gohufont}}) – 11px, 14px, normal and bold<br />
* [http://artwizaleczapka.sourceforge.net/ Lime] ({{AUR|artwiz-fonts}})<br />
* [http://tobiasjung.name/profont/ ProFont] ({{AUR|ttf-profont-iix}}) – 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal<br />
* [[Wikipedia:Proggy programming fonts|Proggy]] ({{AUR|proggyfonts}}) – has different variants<br />
* [http://www.fial.com/~scott/tamsyn-font/ Tamsyn] ({{Pkg|tamsyn-font}})<br />
* [http://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})<br />
* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}})<br />
* [http://unifoundry.com/unifont.html Unifont] ([[Wikipedia:Unicode font#Comparison of fonts|most extensive]] Unicode coverage of any font) ({{Pkg|bdf-unifont}})<br />
<br />
Works with pango 1.44:<br />
* [http://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font-otb}}) - OpenType Bitmap (OTB) variant of Terminus<br />
* [http://tobiasjung.name/profont/ ProFont] ({{AUR|profont-otb}}) - OpenType Bitmap (OTB) variant of ProFont<br />
* [https://xorg.freedesktop.org/releases/individual/font/ Misc Fixed] {{AUR|xorg-fonts-misc-otb}}<br />
* More [https://aur.archlinux.org/packages/?O=0&SeB=n&K=-otb&outdated=&SB=n&SO=a&PP=50&do_Search=Go otb] fonts on AUR<br />
<br />
=== Latin script ===<br />
<br />
==== Families ====<br />
<br />
Packages [[Font package guidelines#Provides|providing a base font set]]:<br />
* [[Wikipedia:Bitstream Vera|Bitstream Vera]] ({{Pkg|ttf-bitstream-vera}}) – serif, sans-serif, and monospace<br />
* [[Wikipedia:Croscore fonts|Croscore fonts]] ({{Pkg|ttf-croscore}}) – Chrome OS' substitute for Windows' Arial, Times New Roman, and Courier New using the same metric<br />
* [[Wikipedia:DejaVu fonts|DejaVu fonts]] ({{Pkg|ttf-dejavu}}) – Bitstream Vera modified for greater Unicode coverage<br />
* [[Wikipedia:Droid (font)|Droid]] ({{Pkg|ttf-droid}}) – default font for older Android versions with wide Unicode coverage including CJK but not symbols and emojis<br />
* [[Wikipedia:GNU FreeFont|GNU FreeFont]] ({{Pkg|gnu-free-fonts}}) – free sans, sans serif and monospace fonts in the OpenType scalable format, good Unicode coverage however does not include CJK<br />
* [[Wikipedia:IBM Plex|IBM Plex]] ({{Pkg|ttf-ibm-plex}}) – serif, sans-serif, condensed sans-serif and monospace with true italics<br />
* [[Wikipedia:Liberation fonts|Liberation fonts]] ({{Pkg|ttf-liberation}}) – free metric-compatible substitute for the Arial, Arial Narrow, Times New Roman and Courier New fonts found in Windows and Microsoft Office products<br />
* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) – serif (Libertine) and sans serif (Biolinum) fonts with large Unicode coverage<br />
* [[Microsoft fonts]] ({{AUR|ttf-ms-win10}}) – Windows 10 fonts (Windows 10 installation or installation medium needed)<br />
* [[Wikipedia:Noto fonts|Noto fonts]] ({{Pkg|noto-fonts}}) – Google font family with full Unicode coverage if installed with its emoji and CJK optional dependencies<br />
<br />
Packages not providing a base font set:<br />
* [http://b612-font.com/ B612] ({{AUR|ttf-b612}}) – open source font family (sans and mono) sponsored by Airbus, designed for comfort of reading on aircraft cockpit screens<br />
* [[Wikipedia:Luxi fonts|Luxi fonts]] ({{Pkg|font-bh-ttf}}) – X.Org font family similar to Lucida<br />
* [[Wikipedia:Roboto|Roboto]] ({{Pkg|ttf-roboto}}) – default font for newer Android versions where it is complemented by Noto fonts for languages not supported like CJK<br />
* [http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html TeX Gyre fonts] ({{pkg|tex-gyre-fonts}}) – free substitute for Helvetica, Times New Roman, Palatino, Bookman and other popular fonts by the Polish GUST association of TeX users <br />
* [[Wikipedia:Ubuntu Font Family|Ubuntu font family]] ({{Pkg|ttf-ubuntu-font-family}})<br />
<br />
Legacy Microsoft font packages:<br />
* [http://corefonts.sourceforge.net/ Microsoft fonts] ({{AUR|ttf-ms-fonts}}) – Andalé Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman<br />
* Vista fonts ({{AUR|ttf-vista-fonts}}) – Consolas, Calibri, Candara, Corbel, Cambria, Constantia<br />
<br />
==== Monospaced ====<br />
<br />
Fonts supporting [[Wikipedia:Orthographic_ligature#Programming_languages|programming ligatures]] are identified below with a ⟶ sign. For more monospaced fonts, also see [[#Bitmap]] and [[#Families]].<br />
<br />
* [http://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{Pkg|ttf-anonymous-pro}}, included in {{AUR|ttf-google-fonts-git}})<br />
* [https://github.com/microsoft/cascadia-code Cascadia Code] ({{Pkg|ttf-cascadia-code}}) ⟶ – designed to enhance the look of the Windows Terminal, with programming ligatures, released by Microsoft under the Open Font License.<br />
* [https://quoteunquoteapps.com/courierprime/ Courier Prime] ({{AUR|ttf-courier-prime}}) – Courier alternative which has been supplemented by a sans serif font and a version optimized for programming, released under the Open Font License.<br />
* [https://damieng.com/envy-code-r Envy Code R] ({{AUR|ttf-envy-code-r}}) – font designed for programmers<br />
* Fantasque Sans Mono ({{Pkg|ttf-fantasque-sans-mono}}, {{Pkg|otf-fantasque-sans-mono}})<br />
* [[Wikipedia:Fira_(typeface)|Fira Mono]] ({{Pkg|ttf-fira-mono}}, {{Pkg|otf-fira-mono}}) – font optimized for small screens and adopted by Mozilla for the Firefox OS<br />
* [[Wikipedia:Fira_(typeface)#Fira_Code|Fira Code]] ({{Pkg|ttf-fira-code}}) ⟶ – extension of Fira Mono with programming ligatures for common programming multi-character combinations<br />
* [https://sourcefoundry.org/hack/ Hack] ({{Pkg|ttf-hack}}) - an open source monospaced font, used as the default in KDE Plasma<br />
* [[Wikipedia:Inconsolata|Inconsolata]] ({{Pkg|ttf-inconsolata}}, included in {{AUR|ttf-google-fonts-git}}) – designed for source code listing, inspired by Consolas and Letter Gothic<br />
* [https://leonardo-m.livejournal.com/77079.html Inconsolata-g] ({{AUR|ttf-inconsolata-g}}) – adds some programmer-friendly modifications<br />
* [https://be5invis.github.io/Iosevka/ Iosevka] ({{AUR|ttf-iosevka}}) ⟶ – slender sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono, designed to be the ideal font for programming; it supports programming ligatures and over 2000 latin, greek, cyrillic, phonetic and PowerLine glyphs<br />
* [https://www.jetbrains.com/lp/mono/ JetBrains Mono] ({{Pkg|ttf-jetbrains-mono}}) ⟶ – the free and open-source typeface for developers<br />
* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]] (included in package {{AUR|jre}})<br />
* [[Wikipedia:Menlo (typeface)|Menlo]] ({{AUR|ttf-meslo}}) – customized version of Apple's Menlo Regular font for OS X with larger vertical gap spacing<br />
* [[Wikipedia:Monaco (typeface)|Monaco]] ({{AUR|ttf-monaco}}) – proprietary font designed by Apple for OS X<br />
* Monofur ({{Pkg|ttf-monofur}})<br />
* [https://madmalik.github.io/mononoki Mononoki] ({{AUR|ttf-mononoki}}) – a font for programming and code review<br />
* [[Wikipedia:Source Code Pro|Source Code Pro]] ({{Pkg|adobe-source-code-pro-fonts}}, included in {{AUR|ttf-google-fonts-git}})<br />
<br />
Relevant websites:<br />
<br />
* [http://www.lowing.org/fonts/ Trevor Lowing's font list]<br />
* [https://www.slant.co/topics/67/~what-are-the-best-programming-fonts Slant: What are the best programming fonts?]<br />
* [https://stackoverflow.com/questions/4689/recommended-fonts-for-programming Stack Overflow: Recommended fonts for programming]<br />
* [https://www.programmingfonts.org Programming Fonts - Test Drive]<br />
* [http://s9w.io/font_compare Programming Fonts Compare]<br />
<br />
==== Sans-serif ====<br />
<br />
* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}})<br />
* [[Wikipedia:Cantarell (typeface)|Cantarell]] ({{Pkg|cantarell-fonts}}) – default font supplied with GNOME, it is required by the GNOME and GTK 3 related packages<br />
* [https://typedesign.netlify.app/dmcasansserif.html DMCA Sans Serif] ({{AUR|ttf-dmcasansserif}}) – General purpose sans serif font metric-compatible with Microsoft Consolas<br />
* [[Wikipedia:GNU FreeFont|FreeSans]] ({{Pkg|gnu-free-fonts}}) – Unicode<br />
* [https://github.com/rsms/inter Inter UI] ({{Pkg|inter-font}}) – designed for user interfaces<br />
* [https://indestructibletype.com/Jost.html Jost*] ({{AUR|otf-jost}}) - An open-source typeface based on [[Wikipedia:Futura (typeface)|Futura]]<br />
* [[Wikipedia:Open Sans|Open Sans]] ({{Pkg|ttf-opensans}}) – sans serif font commissioned by Google, based on Droid sans but slightly wider.<br />
* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) – 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic<br />
* [[Wikipedia:Source Sans Pro|Source Sans Pro]] ({{Pkg|adobe-source-sans-pro-fonts}}) – open source sans serif font from Adobe with a design based on News Gothic and Franklin Gothic<br />
* [[Wikipedia:Tahoma (typeface)|Tahoma]] ({{AUR|ttf-tahoma}})<br />
<br />
==== Serif ====<br />
<br />
* [https://indestructibletype.com/Bodoni.html Bodoni*] ({{AUR|otf-bodoni}}) - An open-source [[Wikipedia:Bodoni|Bodoni]] revival<br />
* [https://github.com/octaviopardo/EBGaramond12 EB Garamond] ({{AUR|ebgaramond-otf}}) - An open-source [[Wikipedia:Garamond|Garamond]] revival<br />
* [[Wikipedia:GNU FreeFont|FreeSerif]] ({{Pkg|gnu-free-fonts}}) - Unicode<br />
* [[Wikipedia:Gentium|Gentium]] ({{Pkg|gentium-plus-font}}) - Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet<br />
* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) - Unicode: Latin, Greek, Cyrillic, Hebrew<br />
<br />
==== Unsorted ====<br />
<br />
{{Style|This section should be absorbed into the Monospace/Serif/Sans-Serif structure}}<br />
<br />
* {{AUR|ttf-cheapskate}} - Font collection from ''dustismo.com''<br />
* {{Pkg|ttf-junicode}} - Junius font containing almost complete medieval latin script glyphs<br />
* {{AUR|ttf-mph-2b-damase}} - Covers full plane 1 and several scripts<br />
* {{Pkg|xorg-fonts-type1}} - IBM Courier and Adobe Utopia sets of [[Wikipedia:PostScript fonts|PostScript fonts]]<br />
* {{AUR|all-repository-fonts}} - Meta package for all fonts in the official repositories.<br />
* {{AUR|ttf-google-fonts-git}} - a huge collection of free fonts (including Ubuntu, Inconsolata, Roboto, etc.) - Note: Your font dialog might get very long as >100 fonts will be added.<br />
<br />
=== Non-latin scripts ===<br />
<br />
==== Ancient Scripts ====<br />
<br />
* {{AUR|ttf-ancient-fonts}} - Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts<br />
<br />
==== Arabic ====<br />
<br />
* {{AUR|ttf-amiri}} - A classical Arabic typeface in Naskh style poineered by Amiria Press<br />
* {{AUR|ttf-arabeyes-fonts}} - Collection of free Arabic fonts<br />
* {{AUR|ttf-qurancomplex-fonts}} - Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah<br />
* {{AUR|ttf-sil-lateef}} - Unicode Arabic font from [[wikipedia:SIL_International|SIL]]<br />
* {{AUR|ttf-sil-scheherazade}} - Unicode Arabic font from SIL (Alternative for Traditional Arabic font)<br />
<br />
==== Braille ====<br />
<br />
* {{AUR|ttf-ubraille}} - Font containing Unicode symbols for ''braille''<br />
<br />
==== Chinese, Japanese, Korean, Vietnamese ====<br />
<br />
===== Pan-CJK =====<br />
<br />
* Adobe Source Han fonts - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look.<br />
** {{Pkg|adobe-source-han-sans-otc-fonts}} - Sans fonts<br />
** {{Pkg|adobe-source-han-serif-otc-fonts}} - Serif fonts<br />
* {{Pkg|noto-fonts-cjk}} - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look. It is currently a rebadged version of {{Pkg|adobe-source-han-sans-otc-fonts}}.<br />
<br />
===== Chinese =====<br />
<br />
See [[Localization/Chinese#Fonts]].<br />
<br />
===== Japanese =====<br />
<br />
See [[Localization/Japanese#Fonts]].<br />
<br />
===== Korean =====<br />
<br />
See [[Localization/Korean#Fonts]].<br />
<br />
===== Vietnamese =====<br />
<br />
* {{Pkg|ttf-hannom}} - Vietnamese TrueType font for chữ Nôm characters<br />
<br />
==== Cyrillic ====<br />
<br />
See also [[#Latin script]].<br />
<br />
* {{AUR|ttf-paratype}} - Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license<br />
* {{AUR|otf-russkopis}} - A free OpenType cursive font for Cyrillic script<br />
<br />
==== Greek ====<br />
<br />
Almost all Unicode fonts contain the Greek character set (polytonic included). Some additional font packages, which might not contain the complete Unicode set but utilize high quality Greek (and Latin, of course) typefaces are:<br />
<br />
* {{AUR|otf-gfs}} - Selection of OpenType fonts from the Greek Font Society<br />
* {{AUR|ttf-mgopen}} - Professional TrueType fonts from Magenta<br />
<br />
==== Hebrew ====<br />
<br />
* {{AUR|opensiddur-hebrew-fonts}} - Large collection of Open-source licensed Hebrew fonts. There are also few Latin, Greek, Cyrillic, Arabic, and Amharic.<br />
* {{AUR|culmus}} - Nice collection of free Hebrew fonts<br />
<br />
==== Indic ====<br />
<br />
See [[Localization/Indic#Fonts]].<br />
<br />
==== Khmer ====<br />
<br />
* {{Pkg|ttf-khmer}} - Font covering glyphs for Khmer language<br />
* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})<br />
<br />
==== Mongolic and Tungusic ====<br />
<br />
* {{AUR|ttf-abkai}} - Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)<br />
<br />
==== Persian ====<br />
<br />
* {{AUR|persian-fonts}} - Meta package for installing all Persian fonts in AUR.<br />
* {{AUR|borna-fonts}} - Borna Rayaneh Co. Persian B font series.<br />
* {{AUR|iran-nastaliq-fonts}} - A free Unicode calligraphic Persian font.<br />
* {{AUR|iranian-fonts}} - Iranian-Sans and Iranian-Serif Persian font family.<br />
* {{AUR|ir-standard-fonts}} - Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts.<br />
* {{AUR|persian-hm-ftx-fonts}} - A Persian font series derived from X Series 2, Metafont and FarsiTeX fonts with Kashida feature.<br />
* {{AUR|persian-hm-xs2-fonts}} - A Persian font series derived from X Series 2 fonts with Kashida feature.<br />
* {{AUR|sina-fonts}} - Sina Pardazesh Co. Persian font series.<br />
* {{AUR|gandom-fonts}}, {{AUR|parastoo-fonts}}, {{AUR|sahel-fonts}}, {{AUR|samim-fonts}}, {{AUR|shabnam-fonts}}, {{AUR|tanha-fonts}}, {{AUR|vazir-fonts}}, {{AUR|vazir-code-fonts}} - Beautiful Persian fonts made by Saber RastiKerdar.<br />
* {{AUR|ttf-yas}} - The Yas Persian font series (with '''hollow zero''').<br />
* {{AUR|ttf-x2}} - Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).<br />
<br />
==== Tai–Kadai ====<br />
<br />
* {{AUR|fonts-tlwg}} - Collection of scalable Thai fonts<br />
* {{AUR|ttf-lao}} - Lao TTF font (Phetsarath_OT)<br />
* {{AUR|ttf-lao-fonts}} - Lao TTF fonts, both Unicode and non-Unicode for Windows<br />
<br />
==== Tibeto-Burman ====<br />
<br />
* {{Pkg|ttf-tibetan-machine}} - Tibetan Machine TTFont<br />
* {{AUR|ttf-myanmar-fonts}} - 121 Fonts from myordbok.com<br />
<br />
=== Emoji and symbols ===<br />
<br />
A section of the Unicode standard is designated for pictographic characters called "emoji".<br />
<br />
[[Wikipedia:Emoji|Emoji]] fonts come in different formats: CBDT/CBLC (Google), SBIX (Apple), COLR/CPAL (Microsoft), SVG (Mozilla/Adobe).<br />
<br />
Emojis should work without any configuration once you have at least one emoji font installed of supported format. Emoji font fallback according to [[Wikipedia:Emoji#Emoji versus text presentation|the standard]] requires [https://github.com/google/emoji-segmenter extra code to handle emoji]. To force emoji font for specific application, see [[Font configuration#Force emoji font]].<br />
<br />
{| class="wikitable"<br />
|-<br />
! Software !! CBDT/CBLC !! SBIX !! COLR/CPAL !! SVG !! Emoji font fallback<br />
|-<br />
! [[Wikipedia:Freetype|Freetype]]<br />
| {{Yes}} || {{Yes}} || {{Yes}} || {{No|https://savannah.nongnu.org/bugs/?46141}} || {{-}}<br />
|-<br />
! [[Wikipedia:Pango|Pango]]<br />
| colspan=4 {{C|Freetype}} || {{Yes|https://gitlab.gnome.org/GNOME/pango/-/issues/298}}<br />
|-<br />
! [[List of applications/Internet#WebKit-based|WebKitGTK]]<br />
| colspan=4 {{C|Freetype}} || {{Yes|https://trac.webkit.org/changeset/239822/webkit}}<br />
|-<br />
! [[Qt]]<br />
| colspan=4 {{C|Freetype}} || {{No|https://bugreports.qt.io/browse/QTBUG-71568}}<br />
|-<br />
! [[Chromium]]<br />
| colspan=4 {{C|Freetype}} || {{Yes|https://chromium.googlesource.com/chromium/src.git/+/671511b00e2d6c374a3079c1c379d2d0dfad32fe}}<br />
|-<br />
! [[Firefox]]<br />
| colspan=3 {{C|Freetype}} || {{Yes}} || {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1509988}}, see [[Firefox#Font troubleshooting]] for workaround.<br />
|}<br />
<br />
CBDT/CBLC:<br />
<br />
* {{Pkg|noto-fonts-emoji}} — Google's open-source Emoji 13.0.<br />
* {{Pkg|ttf-joypixels}} — EmojiOne creator's proprietary Emoji 13.0.<br />
* {{AUR|ttf-twemoji}} — Twitter's open-source Emoji 13.0.<br />
<br />
SVG:<br />
<br />
* {{AUR|otf-openmoji}} — German University of Design in Schwäbisch Gmünd open-source Emoji 12.1.<br />
* {{AUR|ttf-twemoji-color}} — Twitter's open-source Emoji 12.0.<br />
<br />
Outline only:<br />
<br />
* {{AUR|ttf-symbola}} — provides many Unicode symbols, including emoji.<br />
<br />
[[wikipedia:Emoticon#Japanese_style|Kaomoji]] are sometimes referred to as "Japanese emoticons" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: {{Pkg|gnu-free-fonts}}, {{Pkg|ttf-arphic-uming}}, and {{Pkg|ttf-indic-otf}}.<br />
<br />
=== Math ===<br />
<br />
* {{Pkg|texlive-core}} and {{Pkg|texlive-fontsextra}} contain many math fonts such as Latin Modern Math and [[Wikipedia:STIX Fonts project|STIX Fonts]]. See [[TeX Live#Making fonts available to Fontconfig]] for configuration.<br />
* {{AUR|otf-stix}} - A standalone, more recent version of STIX<br />
* {{Pkg|otf-latin-modern}}, {{Pkg|otf-latinmodern-math}} - Improved version of Computer Modern fonts as used in LaTeX<br />
* {{AUR|ttf-computer-modern-fonts}}, {{AUR|otf-cm-unicode}} - [[wikipedia:Computer Modern|Computer Modern]] (of TeX fame)<br />
* {{AUR|ttf-mathtype}} - MathType fonts<br />
<br />
=== Other operating system fonts ===<br />
<br />
* {{AUR|ttf-mac-fonts}} - Apple MacOS TrueType fonts<br />
<br />
See [[Metric-compatible fonts]], which lists available alternatives for [[Microsoft fonts]].<br />
<br />
== Fallback font order ==<br />
<br />
Fontconfig automatically chooses a font that matches the current requirement. That is to say, if one is looking at a window containing English and Chinese for example, it will switch to another font for the Chinese text if the default one does not support it.<br />
<br />
Fontconfig lets every user configure the order they want via {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}.<br />
If you want a particular Chinese font to be selected after your favorite Serif font, your file would look like this:<br />
<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<alias><br />
<family>serif</family><br />
<prefer><br />
<family>Your favorite Latin Serif font name</family><br />
<family>Your Chinese font name</family><br />
</prefer><br />
</alias><br />
</fontconfig><br />
<br />
{{Tip|<br />
* If you use a Chinese locale, set {{ic|LC_LANG}} to {{ic|und}} to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font.<br />
* After changing the configuration run {{ic|fc-match -a monospace {{!}} head}} to verify your fallback font is set correctly.<br />
}}<br />
<br />
You can add a section for sans-serif and monospace as well. For more information, have a look at the fontconfig manual.<br />
<br />
See also [[Font configuration#Replace or set default fonts]].<br />
<br />
== Font alias ==<br />
<br />
There are several font aliases which represent other fonts in order that applications may use similar fonts. The most common aliases are: {{ic|serif}} for a font of the serif type (e.g. DejaVu Serif); {{ic|sans-serif}} for a font of the sans-serif type (e.g. DejaVu Sans); and {{ic|monospace}} for a monospaced font (e.g. DejaVu Sans Mono). However, the fonts which these aliases represent may vary and the relationship is often not shown in font management tools, such as those found in [[KDE]] and other [[desktop environments]].<br />
<br />
To reverse an alias and find which font it is representing, run:<br />
<br />
{{hc|$ fc-match monospace|<br />
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"<br />
}}<br />
<br />
In this case, {{ic|DejaVuSansMono.ttf}} is the font represented by the monospace alias.<br />
<br />
== Tips and tricks ==<br />
<br />
=== List all installed fonts ===<br />
<br />
You can use the following command to list all installed Fontconfig fonts that are available on your system. <br />
<br />
$ fc-list<br />
<br />
=== List installed fonts for a particular language ===<br />
<br />
Applications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command {{ic|1=fc-list :lang="''two letter language code''"}}. For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:<br />
<br />
{{hc|1=$ fc-list -f '%{file}\n' :lang=ar|2=<br />
/usr/share/fonts/TTF/FreeMono.ttf<br />
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf<br />
/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf<br />
/usr/share/fonts/TTF/DejaVuSansMono.ttf<br />
/usr/share/fonts/TTF/FreeSerif.ttf<br />
}}<br />
<br />
=== List installed fonts for a particular Unicode character ===<br />
<br />
To search for monospace fonts supporting a particular Unicode codepoint:<br />
<br />
$ fc-match -s monospace:charset=1F4A9<br />
<br />
=== Set terminal font on-the-fly ===<br />
<br />
{{Expansion|Where is the documentation for the escape codes?}}<br />
<br />
For terminal emulators that use [[X resources]], e.g. [[xterm]] or [[rxvt-unicode]], fonts can be set by using [[Bash/Prompt_customization#Bash_escape_sequences|escape sequences]]. Specifically, {{ic|echo -e "\033]710;$font\007"}} to change the normal font ({{ic|*font}} in {{ic|~/.Xresources}}), and replace {{ic|710}} with {{ic|711}}, {{ic|712}}, and {{ic|713}} to change the {{ic|*boldFont}}, {{ic|*italicFont}}, and {{ic|*boldItalicFont}}, respectively.<br />
<br />
{{ic|$font}} uses the same syntax as in {{ic|~/.Xresources}} and can be anything the terminal emulator will support. (Example: {{ic|1=xft:dejavu sans mono:size=9}})<br />
<br />
=== Application-specific font cache ===<br />
<br />
Matplotlib ({{Pkg|python-matplotlib}} or {{AUR|python2-matplotlib}}) uses its own font cache, so after updating fonts, be sure to remove {{ic|~/.matplotlib/fontList.cache}}, {{ic|~/.cache/matplotlib/fontList.cache}}, {{ic|~/.sage/matplotlib-1.2.1/fontList.cache}}, etc. so it will regenerate its cache and find the new fonts [http://matplotlib.1069221.n5.nabble.com/getting-matplotlib-to-recognize-a-new-font-td40500.html].<br />
<br />
=== BiDirectional text in terminal ===<br />
Run BiCon ({{AUR|bicon-git}}) in order to display correctly Arabic and Hebrew text inside the terminal.<br />
<br />
== See also ==<br />
<br />
* [http://behdad.org/text/ State of Text Rendering]<br />
* [https://fontlibrary.org/en Font Library] - Fonts under Free licenses<br />
* [https://screenshots.debian.net/packages?search=fonts&show=with Fonts on screenshots.debian.net]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=FFmpeg&diff=614293FFmpeg2020-05-18T19:31:22Z<p>Leeo97one: /* Intel QuickSync (QSV) */ Fix link</p>
<hr />
<div>[[Category:Audio]]<br />
[[Category:Video]]<br />
[[ja:FFmpeg]]<br />
[[zh-hans:FFmpeg]]<br />
{{Related articles start}}<br />
{{Related|Convert FLAC to MP3#With FFmpeg}}<br />
{{Related articles end}}<br />
From the project [http://www.ffmpeg.org/ home page]:<br />
:FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library.<br />
<br />
== Installation ==<br />
<br />
{{Note|You may encounter FFmpeg forks like ''libav'' and ''avconv'', see [http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html The FFmpeg/Libav situation] for a blog article about the differences between the project and the current status of FFmpeg.}}<br />
<br />
[[Install]] the {{Pkg|ffmpeg}} package.<br />
<br />
For the development version, install the {{AUR|ffmpeg-git}} package. There is also {{AUR|ffmpeg-full}}, which is built with as many optional features enabled as possible.<br />
<br />
== Encoding examples ==<br />
<br />
{{Note|<br />
* It is important parameters are specified in the correct order (e.g. input, video, filters, audio, output), failing to do so may cause parameters being skipped or will prevent FFmpeg from executing.<br />
* FFmpeg should automatically choose the number of CPU threads available. However you may want to force the number of threads available by the parameter {{ic|-threads ''number''}}.<br />
}}<br />
<br />
=== Screen capture ===<br />
<br />
FFmpeg includes the [http://www.ffmpeg.org/ffmpeg-devices.html#x11grab x11grab] and [http://www.ffmpeg.org/ffmpeg-devices.html#alsa-1 ALSA] virtual devices that enable capturing the entire user display and audio input.<br />
<br />
To take a screenshot {{ic|screen.png}}:<br />
<br />
$ ffmpeg -f x11grab -video_size 1920x1080 -i $DISPLAY -vframes 1 screen.png<br />
<br />
where {{ic|-video_size}} specifies the size of the area to capture.<br />
<br />
To take a screencast {{ic|screen.mkv}} with lossless encoding and without audio:<br />
<br />
$ ffmpeg -f x11grab -video_size 1920x1080 -framerate 25 -i $DISPLAY -c:v ffvhuff screen.mkv<br />
<br />
Here, the Huffyuv codec is used, which is fast, but produces huge file sizes.<br />
<br />
To take a screencast {{ic|screen.mp4}} with lossy encoding and with audio:<br />
<br />
$ ffmpeg -f x11grab -video_size 1920x1080 -framerate 25 -i $DISPLAY -f alsa -i default -c:v libx264 -preset ultrafast -c:a aac screen.mp4<br />
<br />
Here, the x264 codec with the fastest possible encoding speed is used. Other codecs can be used; if writing each frame is too slow (either due to inadequate disk performance or slow encoding), then frames will be dropped and video output will be choppy.<br />
<br />
See also the [https://trac.ffmpeg.org/wiki/Capture/Desktop#Linux official documentation].<br />
<br />
=== Recording webcam ===<br />
<br />
FFmpeg includes the [http://www.ffmpeg.org/ffmpeg-devices.html#video4linux2_002c-v4l2 video4linux2] and [http://www.ffmpeg.org/ffmpeg-devices.html#alsa-1 ALSA] input devices that enable capturing webcam and audio input.<br />
<br />
The following command will record a video {{ic|webcam.mp4}} from the webcam without audio, assuming that the webcam is correctly recognized under {{ic|/dev/video0}}:<br />
<br />
$ ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v libx264 -preset ultrafast webcam.mp4<br />
<br />
where {{ic|-video_size}} specifies the largest allowed image size from the webcam.<br />
<br />
The above produces a silent video. To record a video {{ic|webcam.mp4}} from the webcam with audio:<br />
<br />
$ ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -f alsa -i default -c:v libx264 -preset ultrafast -c:a aac webcam.mp4<br />
<br />
Here, the x264 codec with the fastest possible encoding speed is used. Other codecs can be used; if writing each frame is too slow (either due to inadequate disk performance or slow encoding), then frames will be dropped and video output will be choppy.<br />
<br />
See also the [https://trac.ffmpeg.org/wiki/Capture/Webcam#Linux official documentation].<br />
<br />
=== VOB to any container ===<br />
<br />
Concatenate the desired [[Wikipedia:VOB|VOB]] files into a single stream and mux them to MPEG-2:<br />
$ cat f0.VOB f1.VOB f2.VOB | ffmpeg -i - out.mp2<br />
<br />
=== x264 lossless ===<br />
<br />
The ''ultrafast'' preset will provide the fastest encoding and is useful for quick capturing (such as screencasting):<br />
<br />
$ ffmpeg -i input -c:v libx264 -preset ultrafast -qp 0 -c:a copy output<br />
<br />
On the opposite end of the preset spectrum is ''veryslow'' and will encode slower than ''ultrafast'' but provide a smaller output file size:<br />
<br />
$ ffmpeg -i input -c:v libx264 -preset veryslow -qp 0 -c:a copy output<br />
<br />
Both examples will provide the same quality output.<br />
<br />
{{Tip|If your computer is able to handle {{ic|-preset superfast}} in realtime, you should use that instead of {{ic|-preset ultrafast}}. Ultrafast is ''far'' less efficient compression than superfast.}}<br />
<br />
=== x265 ===<br />
<br />
In encoding x265 files, you may need to specify the aspect ratio of the file via {{ic|-aspect ''width'':''height''}}. Example : <br />
<br />
$ ffmpeg -i input -c:v libx265 -aspect 1920:1080 -preset veryslow -x265-params crf=20 output<br />
<br />
=== Single-pass MPEG-2 (near lossless) ===<br />
<br />
Allow FFmpeg to automatically set DVD standardized parameters. Encode to DVD [[Wikipedia:MPEG-2|MPEG-2]] at ~30 FPS:<br />
<br />
$ ffmpeg -i ''video''.VOB -target ntsc-dvd ''output''.mpg<br />
<br />
Encode to DVD MPEG-2 at ~24 FPS:<br />
<br />
$ ffmpeg -i ''video''.VOB -target film-dvd ''output''.mpg<br />
<br />
=== x264: constant rate factor ===<br />
<br />
Used when you want a specific quality output. General usage is to use the highest {{ic|-crf}} value that still provides an acceptable quality. Lower values are higher quality; 0 is lossless, 18 is visually lossless, and 23 is the default value. A sane range is between 18 and 28. Use the slowest {{ic|-preset}} you have patience for. See the [https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide x264 Encoding Guide] for more information.<br />
<br />
$ ffmpeg -i ''video'' -c:v libx264 -tune film -preset slow -crf 22 -x264opts fast_pskip=0 -c:a libmp3lame -aq 4 ''output''.mkv<br />
<br />
{{ic|-tune}} option can be used to [http://forum.doom9.org/showthread.php?t=149394 match the type and content of the of media being encoded].<br />
<br />
=== Two-pass x264 (very high-quality) ===<br />
<br />
Audio deactivated as only video statistics are recorded during the first of multiple pass runs:<br />
<br />
$ ffmpeg -i ''video''.VOB -an -vcodec libx264 -pass 1 -preset veryslow \<br />
-threads 0 -b:v 3000k -x264opts frameref=15:fast_pskip=0 -f rawvideo -y /dev/null<br />
<br />
Container format is automatically detected and muxed into from the output file extenstion ({{ic|.mkv}}):<br />
<br />
$ ffmpeg -i ''video''.VOB -acodec aac -b:a 256k -ar 96000 -vcodec libx264 \<br />
-pass 2 -preset veryslow -threads 0 -b:v 3000k -x264opts frameref=15:fast_pskip=0 ''video''.mkv<br />
<br />
=== x264 video stabilization ===<br />
<br />
Video stablization using the vid.stab plugin entails two passes. <br />
<br />
==== First pass ====<br />
<br />
The first pass records stabilization parameters to a file and/or a test video for visual analysis.<br />
<br />
* Records stabilization parameters to a file only {{bc|1=$ ffmpeg -i input -vf vidstabdetect=stepsize=4:mincontrast=0:result=transforms.trf -f null -}}<br />
* Records stabilization parameters to a file and create test video "output-stab" for visual analysis {{bc|1=$ ffmpeg -i input -vf vidstabdetect=stepsize=4:mincontrast=0:result=transforms.trf -f output-stab}}<br />
<br />
==== Second pass ====<br />
<br />
The second pass parses the stabilization parameters generated from the first pass and applies them to produce "output-stab_final". You will want to apply any additional filters at this point so as to avoid subsequent transcoding to preserve as much video quality as possible. The following example performs the following in addition to video stabilization:<br />
<br />
* {{ic|unsharp}} is recommended by the author of vid.stab. Here we are simply using the defaults of 5:5:1.0:5:5:1.0<br />
* {{Tip|1=fade=t=in:st=0:d=4}} fade in from black starting from the beginning of the file for four seconds<br />
* {{Tip|1=fade=t=out:st=60:d=4}} fade out to black starting from sixty seconds into the video for four seconds<br />
* {{ic|-c:a pcm_s16le}} XAVC-S codec records in pcm_s16be which is losslessly transcoded to pcm_s16le<br />
<br />
$ ffmpeg -i input -vf vidstabtransform=smoothing=30:interpol=bicubic:input=transforms.trf,unsharp,fade=t=in:st=0:d=4,fade=t=out:st=60:d=4 -c:v libx264 -tune film -preset veryslow -crf 8 -x264opts fast_pskip=0 -c:a pcm_s16le output-stab_final<br />
<br />
=== Subtitles ===<br />
<br />
==== Extracting ====<br />
<br />
Subtitles embedded in container files, such as MPEG-2 and Matroska, can be extracted and converted into SRT, SSA, among other subtitle formats.<br />
<br />
* Inspect a file to determine if it contains a subtitle stream:<br />
<br />
{{hc|$ ffprobe -hide_banner foo.mkv|<br />
...<br />
Stream #0:0(und): Video: h264 (High), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)<br />
Metadata:<br />
CREATION_TIME : 2012-06-05 05:04:15<br />
LANGUAGE : und<br />
Stream #0:1(und): Audio: aac, 44100 Hz, stereo, fltp (default)<br />
Metadata:<br />
CREATION_TIME : 2012-06-05 05:10:34<br />
LANGUAGE : und<br />
HANDLER_NAME : GPAC ISO Audio Handler<br />
'''Stream #0:2: Subtitle: ssa (default)'''<br />
}}<br />
<br />
* {{ic|foo.mkv}} has an embedded SSA subtitle which can be extracted into an independent file:<br />
<br />
$ ffmpeg -i foo.mkv foo.ssa<br />
<br />
Add {{ic|-c:s srt}} to save subtitles in desirable format, e.g. [[Wikipedia:SubRip|SubRip]]:<br />
<br />
$ ffmpeg -i foo.mkv -c:s srt foo.srt<br />
<br />
When dealing with multiple subtitles, you may need to specify the stream that needs to be extracted using the {{ic|-map ''key'':''stream''}} parameter:<br />
<br />
$ ffmpeg -i foo.mkv -map 0:2 foo.ssa<br />
<br />
==== Hardsubbing ====<br />
<br />
(instructions based on [http://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo HowToBurnSubtitlesIntoVideo] at the FFmpeg wiki)<br />
<br />
[[Wikipedia:Hardsub|Hardsubbing]] entails merging subtitles with the video. Hardsubs cannot be disabled, nor language switched.<br />
<br />
* Overlay {{ic|foo.mpg}} with the subtitles in {{ic|foo.ssa}}:<br />
<br />
$ ffmpeg -i foo.mpg -vf subtitles=foo.ssa out.mpg<br />
<br />
=== Volume gain ===<br />
<br />
Volume gain can be modified through {{ic|ffmpeg}}'s filter function. Fist select the audio stream by using: {{ic|-af}} or {{ic|-filter:a}}, then select the {{ic|volume}} filter, and then the number that you want to change the stream by.<br />
<br />
'''Example''':<br />
<br />
$ ffmpeg -i input.flac -af volume=3.0 ouput.flac<br />
<br />
# -af colume=0.5 Half volume gain<br />
# -af volume=1.0 Unchanged volume gain<br />
# -af volume=2.0 Double volume gain<br />
<br />
{{Note|<br />
* Doubling a file's volume gain, is not the same thing as doubling its volume. You will have to experiment to find the right volume.<br />
* ffmpeg writes changes into an output file. So, unlike mp3gain or ogggain, the source file will be left unchanged.<br />
}}<br />
<br />
=== Extracting audio ===<br />
<br />
{{hc|$ ffmpeg -i ''video''.mpg|<br />
...<br />
Input #0, avi, from '''video''.mpg':<br />
Duration: 01:58:28.96, start: 0.000000, bitrate: 3000 kb/s<br />
Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 1:1 DAR 16:9], 29.97 tbr, 29.97 tbn, 29.97 tbc<br />
Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 384 kb/s<br />
Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s<br />
Stream #0.3: Audio: dts, 48000 Hz, 5.1 768 kb/s<br />
...<br />
}}<br />
<br />
Extract the first ({{ic|-map 0:1}}) [[Wikipedia:Dolby_Digital|AC-3]] encoded audio stream exactly as it was multiplexed into the file:<br />
<br />
$ ffmpeg -i ''video''.mpg -map 0:1 -acodec copy -vn ''video''.ac3<br />
<br />
Convert the third ({{ic|-map 0:3}}) [[Wikipedia:DTS_(sound_system)|DTS]] audio stream to an [[Wikipedia:Advanced_Audio_Coding|AAC]] file with a bitrate of 192 kb/s and a [[Wikipedia:Sampling_rate|sampling rate]] of 96000 Hz:<br />
<br />
$ ffmpeg -i ''video''.mpg -map 0:3 -acodec aac -b:a 192k -ar 96000 -vn ''output''.aac<br />
<br />
{{ic|-vn}} disables the processing of the video stream.<br />
<br />
Extract audio stream with certain time interval: <br />
<br />
$ ffmpeg -ss 00:01:25 -t 00:00:05 -i ''video''.mpg -map 0:1 -acodec copy -vn ''output''.ac3<br />
<br />
{{ic|-ss}} specifies the start point, and {{ic|-t}} specifies the duration.<br />
<br />
=== Stripping audio ===<br />
<br />
# Copy the first video stream ({{ic|-map 0:0}}) along with the second AC-3 audio stream ({{ic|-map 0:2}}).<br />
# Convert the AC-3 audio stream to two-channel MP3 with a bitrate of 128 kb/s and a sampling rate of 48000 Hz.<br />
<br />
$ ffmpeg -i ''video''.mpg -map 0:0 -map 0:2 -vcodec copy -acodec libmp3lame \<br />
-b:a 128k -ar 48000 -ac 2 ''video''.mkv<br />
<br />
{{hc|$ ffmpeg -i ''video''.mkv|<br />
...<br />
Input #0, avi, from '''video''.mpg':<br />
Duration: 01:58:28.96, start: 0.000000, bitrate: 3000 kb/s<br />
Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 1:1 DAR 16:9], 29.97 tbr, 29.97 tbn, 29.97 tbc<br />
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s<br />
}}<br />
<br />
{{Note|Removing undesired audio streams allows for additional bits to be allocated towards improving video quality.}}<br />
<br />
=== Splitting files ===<br />
<br />
You can use the {{ic|copy}} codec to perform operations on a file without changing the encoding. For example, this allows you to easily split any kind of media file into two:<br />
<br />
$ ffmpeg -i file.ext -t 00:05:30 -c copy part1.ext -ss 00:05:30 -c copy part2.ext<br />
<br />
=== Hardware video acceleration ===<br />
<br />
Encoding/decoding performance may be improved by using [https://trac.ffmpeg.org/wiki/HWAccelIntro hardware acceleration API's], however only a specific kind of codec(s) are allowed and/or may not always produce the same result when using software encoding.<br />
<br />
==== VA-API ====<br />
<br />
[[VA-API]] can be used for encoding and decoding on Intel CPUs (requires {{Pkg|libva-intel-driver}}) and on certain AMD GPUs when using the open-source [[AMDGPU]] driver (requires {{Pkg|libva-mesa-driver}}).<br />
See the [https://trac.ffmpeg.org/wiki/Hardware/VAAPI FFmpeg documentation] or [https://wiki.libav.org/Hardware/vaapi Libav documentation] for information about available parameters and supported platforms.<br />
<br />
An example of encoding using the supported H.264 codec:<br />
<br />
$ ffmpeg -threads 1 -i file.ext -vaapi_device /dev/dri/renderD128 -vcodec h264_vaapi -vf format='nv12|vaapi,hwupload' output.mp4<br />
<br />
==== NVIDIA NVENC/NVDEC ====<br />
<br />
[[Wikipedia:Nvidia NVENC|NVENC]] and [[Wikipedia:Nvidia NVDEC|NVDEC]] can be used for encoding/decoding when using the proprietary [[NVIDIA]] driver with the {{Pkg|nvidia-utils}} package installed. Minimum supported GPUs are from [[Wikipedia:GeForce 600 series|600 series]], see [[Hardware video acceleration#NVIDIA]] for details.<br />
<br />
The [https://gist.github.com/Brainiarc7/8b471ff91319483cdb725f615908286e following gist]{{Dead link|2020|03|29|status=404}} provides some techniques. NVENC is somewhat similar to [[CUDA]], thus it works even from terminal session. Depending on hardware NVENC is several times faster than Intel's VA-API encoders.<br />
<br />
To print available options execute ({{ic|hevc_nvenc}} may also be available):<br />
<br />
$ ffmpeg -help encoder=h264_nvenc<br />
<br />
Example usage:<br />
<br />
$ ffmpeg -i source.ext -c:v h264_nvenc -rc constqp -qp 28 output.mkv<br />
<br />
==== Intel QuickSync (QSV) ====<br />
<br />
[https://www.intel.com/content/www/us/en/architecture-and-technology/quick-sync-video/quick-sync-video-general.html Intel® Quick Sync Video] uses media processing capabilities of an [[Intel]] GPU to decode and encode fast, enabling the processor to complete other tasks and improving system responsiveness.<br />
<br />
This requires {{Pkg|intel-media-sdk}} to be installed.<br />
<br />
The usage of QuickSync is describe in the [https://trac.ffmpeg.org/wiki/Hardware/QuickSync FFmpeg Wiki]. It is recommended to use [[VA-API]] [https://trac.ffmpeg.org/wiki/Hardware/VAAPI] with either the ''iHD'' or ''i965'' driver instead of using ''libmfx'' directly, see the FFmpeg Wiki section ''Hybrid transcode'' for encoding examples and [[Hardware video acceleration#Configuring VA-API]] for driver instructions.<br />
<br />
== Preset files ==<br />
<br />
Populate {{ic|~/.ffmpeg}} with the default [http://ffmpeg.org/ffmpeg.html#Preset-files preset files]: <br />
<br />
$ cp -iR /usr/share/ffmpeg ~/.ffmpeg<br />
<br />
Create new and/or modify the default preset files:<br />
<br />
{{hc|~/.ffmpeg/libavcodec-vhq.ffpreset|2=<br />
vtag=DX50<br />
mbd=2<br />
trellis=2<br />
flags=+cbp+mv0<br />
pre_dia_size=4<br />
dia_size=4<br />
precmp=4<br />
cmp=4<br />
subcmp=4<br />
preme=2<br />
qns=2<br />
}}<br />
<br />
=== Using preset files ===<br />
<br />
Enable the {{ic|-vpre}} option after declaring the desired {{ic|-vcodec}}<br />
<br />
==== libavcodec-vhq.ffpreset ====<br />
<br />
* {{ic|libavcodec}} '''=''' Name of the vcodec/acodec<br />
* {{ic|vhq}} '''=''' Name of specific preset to be called out<br />
* {{ic|ffpreset}} '''=''' FFmpeg preset filetype suffix <br />
<br />
== Tips and tricks ==<br />
<br />
=== Output the duration of a video ===<br />
<br />
$ ffprobe -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 file.ext<br />
<br />
=== Output stream information as JSON ===<br />
<br />
$ ffprobe -v quiet -print_format json -show_format -show_streams file.ext<br />
<br />
=== Create a screen of the video every X frames ===<br />
<br />
$ ffmpeg -i file.ext -an -s 319x180 -vf fps=1/'''100''' -qscale:v 75 %03d.jpg<br />
<br />
== See also ==<br />
<br />
* [http://ffmpeg.org/ffmpeg.html FFmpeg documentation] - official documentation<br />
* [https://trac.ffmpeg.org/wiki#Encoding Encoding] - FFmpeg wiki<br />
* [http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html Encoding with the x264 codec] - MEncoder documentation<br />
* [http://avidemux.org/admWiki/doku.php?id=tutorial:h.264 H.264 encoding guide] - Avidemux wiki<br />
* [http://howto-pages.org/ffmpeg/ Using FFmpeg] - Linux how to pages<br />
* [http://ffmpeg.org/general.html#Supported-File-Formats-and-Codecs List] of supported audio and video streams</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Flatpak&diff=538549Flatpak2018-08-29T14:41:49Z<p>Leeo97one: /* Uninstall a runtime or application */ Add a tip for the --unused option</p>
<hr />
<div>[[Category:Development]]<br />
[[ja:Flatpak]]<br />
{{Related articles start}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
From the project [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] is a system for building, distributing and running sandboxed desktop applications on Linux.''"<br />
<br />
From {{man|1|flatpak}}:<br />
<br />
:''flatpak is a tool for managing applications and the runtimes they use. In the flatpak model, applications can be built and distributed independently from the host system they are used on, and they are isolated from the host system ('sandboxed') to some degree, at runtime.''<br />
:''flatpak uses [https://ostree.readthedocs.io/en/latest/ OSTree] to distribute and deploy data. The repositories it uses are OSTree repositories and can be manipulated with the ostree utility. Installed runtimes and applications are OSTree checkouts.''<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|flatpak}} package.<br />
<br />
{{Note|If you want to build flatpaks with {{ic|flatpak-builder}} you will need to install the optional dependencies of {{pkg|elfutils}} and {{pkg|patch}}.}}<br />
<br />
== Managing repositories ==<br />
<br />
=== Add a repository ===<br />
<br />
To add a remote flatpak repository do:<br />
<br />
$ flatpak remote-add ''name'' ''location''<br />
<br />
where ''name'' is the name for the new remote, and ''location'' is the path or URL for the repository.<br />
<br />
For example to add the official [https://flathub.org/ Flathub repository]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Delete a repository ===<br />
<br />
To delete a remote flatpak repository do:<br />
<br />
$ flatpak remote-delete ''name''<br />
<br />
where ''name'' is the name of the remote repository to be deleted.<br />
<br />
== Managing runtimes and applications ==<br />
<br />
=== Search for a remote runtime or application ===<br />
<br />
Before being able to search for a runtime or application in a newly added remote repository, we need to retrieve the appstream data for it:<br />
<br />
{{hc|$ flatpak update|<br />
Looking for updates...<br />
Updating appstream data for remote ''name''<br />
}}<br />
<br />
Then we can proceed to search for a package with {{ic|flatpak search ''packagename''}}, ''e.g.'' to look for the package {{ic|libreoffice}} with the {{ic|flathub}} remote configured:<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
Application ID Version Branch Remotes Description <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== List all available runtimes and applications ===<br />
<br />
To list all available runtimes and applications in a remote repository named ''remote'' do:<br />
<br />
$ flatpak remote-ls ''remote''<br />
<br />
=== Install a runtime or application ===<br />
<br />
To install a runtime or application do:<br />
<br />
$ flatpak install ''remote'' ''name''<br />
<br />
where ''remote'' is the name of the remote repository, and ''name'' is the name of the application or runtime to install.<br />
<br />
=== List installed runtimes and applications ===<br />
<br />
To list installed runtimes and applications do:<br />
<br />
$ flatpak list<br />
<br />
=== Run applications ===<br />
<br />
Flatpak applications can also be run from the command line:<br />
<br />
$ flatpak run ''name''<br />
<br />
=== Update a runtime or application ===<br />
<br />
To update a runtime or application named ''name'' do:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Uninstall a runtime or application ===<br />
<br />
To uninstall a runtime or application named ''name'' do:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Tip|You can uninstall unused refs (aka orphans applications/runtimes) with {{ic|flatpak uninstall --unused}}}}<br />
<br />
=== Adding Flatpak .desktop files to your menu ===<br />
Flatpak expects window managers to respect the XDG_DATA_DIRS environment variable to discover applications. This may require restarting the session or the launcher may not support this. In such a case where you can edit the list of directories scanned, add these to it:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
This is known to be necessary in Awesome.<br />
<br />
== Creating a custom base runtime ==<br />
<br />
{{Expansion|This can certainly be improved. It also has problems with D-Bus for GNOME apps.}}<br />
<br />
{{Warning|If you want to release your software to the public as a Flatpak, an Arch-based runtime is unsuitable. In this case, you will want to follow [http://docs.flatpak.org official documentation] to integrate your software into the proper Flatpak ecosystem using the [http://flatpak.org/runtimes.html common runtimes].}}<br />
<br />
{{Note|You may want to use an untrusted, unprivileged user account for bundling untrusted software because the software is not sandboxed during app and runtime creation.}}<br />
<br />
{{Note|When distributing bundles to others, you may be legally obliged to provide the source code of some of the bundled software upon request. You may want to use [[ABS]] to build these packages from source.}}<br />
<br />
You can create a custom Arch-based base runtime and base SDK for Flatpak using pacman. You can then use it for building and packaging applications. This is an alternative for personal use to the default {{ic|org.freedesktop.BasePlatform}} and {{ic|org.freedesktop.BaseSdk}} runtimes.<br />
<br />
In addition to {{Pkg|flatpak}}, you need to have installed {{Pkg|fakeroot}} and for pacman hooks support also {{Pkg|fakechroot}}.<br />
<br />
First, start by creating a directory for building the runtime and possibly applications.<br />
<br />
$ mkdir ''myflatpakbuilddir''<br />
$ cd ''myflatpakbuilddir''<br />
<br />
You can then prepare a directory for building the runtime base platform. The files subdirectory will contain what will later be the {{ic|/usr}} directory in the sandbox. Therefore you will need to create symbolic links so the default {{ic|/usr/share}} etc. from Arch can still be accessed at the usual path.<br />
<br />
$ mkdir -p ''myruntime''/files/var/lib/pacman<br />
$ touch ''myruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''myruntime''/files/share<br />
$ ln -s /usr/usr/include ''myruntime''/files/include<br />
$ ln -s /usr/usr/local ''myruntime''/files/local<br />
<br />
Make your host OS fonts available to the Arch runtime:<br />
<br />
$ mkdir -p ''myruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''myruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
You need and may want to adapt your {{ic|pacman.conf}} before installing packages to the runtime. Copy {{ic|/etc/pacman.conf}} to your build directory and then make the following changes:<br />
<br />
* Remove the {{ic|CheckSpace}} option so pacman will not complain about errors finding the root filesystem for checking disk space.<br />
* Remove any undesired custom repositories and {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} and {{ic|NoExtract}} settings that are needed only for the host system.<br />
<br />
Now install the packages for the runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''myruntime''/files --dbpath ''myruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''myruntime''/files/etc/pacman.conf<br />
<br />
Set up the [[Locale|locales]] to be used by editing {{ic|''myruntime''/files/etc/locale.gen}}. Then regenerate the runtime’s locales.<br />
<br />
$ fakechroot chroot ''myruntime''/files locale-gen<br />
<br />
The base SDK can be created from the base runtime with added applications needed for building packages and running pacman.<br />
<br />
$ cp -r ''myruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config mysdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insert metadata about runtime and SDK.<br />
<br />
{{hc|''myruntime''/metadata|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|mysdk/metadata|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Add base runtime and SDK to a local repository in the current directory. You may want to give them appropriate commit messages such as “My Arch base runtime” and “My Arch base SDK”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''myruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=mysdk<br />
$ ostree summary -u<br />
<br />
Install the runtime and SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Creating apps with pacman ===<br />
<br />
As an alternative to building applications [http://flatpak.org/developer.html the usual way], we can use pacman to create a containerized version of the regular Arch packages. Note that {{ic|/usr}} is read-only when creating apps, so we can not use Arch’s packages when building an app. To create a real app with pacman, we can either<br />
<br />
* use pacman to create a runtime containing all dependencies<br />
* and compile the app ourselves [http://flatpak.org/developer.html as usual] or perhaps using pacman with a custom [[PKGBUILD]] tailored to Flatpak which uses {{ic|1=--prefix=/app}} for the {{ic|configure}} script,<br />
<br />
or we can<br />
* use pacman to create a runtime containing the app installed with pacman<br />
* and create a dummy app to launch it.<br />
<br />
For doing the latter, first create a runtime using pacman such as this one for {{Pkg|gedit}}. The runtime is first initialized and prepared for use with pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Then the package is installed. The host’s network connection must be made available to pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
You can test the installation before finishing the runtime (without proper sandboxing).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Now finish building the runtime and export it to a new local repository. pacman’s GnuPG keys have permissions that may interfere and need to be removed first.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Then create a dummy app.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Now finish the dummy app. You can fine-tune the app’s access permissions when sandboxed by giving additional options when finishing the build. For possible options see the [[#See also|Flatpak documentation]] and the [https://git.gnome.org/browse/gnome-apps-nightly/tree GNOME manifest files]. Alternatively, adapt {{ic|geditapp/metadata}} to your needs after finishing the build but before exporting. When the metadata file is complete, export the app to the repository.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Install it along with the runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== See also ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=PHP&diff=487236PHP2017-08-25T15:32:16Z<p>Leeo97one: /* Configuration */ Added some spaces</p>
<hr />
<div>[[Category:Programming languages]]<br />
[[de:PHP]]<br />
[[es:PHP]]<br />
[[fr:Lamp]]<br />
[[it:PHP]]<br />
[[ja:PHP]]<br />
[[ru:PHP]]<br />
[[sr:PHP]]<br />
[[zh-hans:PHP]]<br />
[https://secure.php.net/ PHP] is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|php}} package from the [[official repositories]].<br />
<br />
You can find older versions of PHP in the AUR, such as {{AUR|php56}}.<br />
<br />
Note that to run PHP scripts as plain CGI, you need the {{Pkg|php-cgi}} package.<br />
<br />
== Running ==<br />
<br />
While PHP can be run standalone, it is typically used with http servers such as [[Apache HTTP Server]] (this is frequently called [[LAMP]] setup), [[nginx]], [[lighttpd]] and [[Hiawatha]].<br />
<br />
To run PHP standalone issue the {{ic|php -S localhost:8000 -t public_html/}} command. See [https://secure.php.net/manual/en/features.commandline.webserver.php documentation].<br />
<br />
== Configuration ==<br />
<br />
The main PHP configuration file is well-documented and located at {{ic|/etc/php/php.ini}}.<br />
<br />
* It is recommended to set your timezone ([https://secure.php.net/manual/en/timezones.php list of timezones]) in {{ic|/etc/php/php.ini}} like so:<br />
<br />
date.timezone = Europe/Berlin<br />
<br />
* If you want to display errors to debug your PHP code, change {{ic|display_errors}} to {{ic|On}} in {{ic|/etc/php/php.ini}}:<br />
<br />
display_errors = On<br />
<br />
* The [http://php.net/open-basedir open_basedir] directive limits the paths that can be accessed by PHP, thus increasing security at the expense of potentially interfering with normal program execution. Starting with PHP 7.0, it is [https://www.archlinux.org/news/php-70-packages-released/ no longer set by default] to more closely match upstream so users who wish to use it must configure it manually. Example:<br />
<br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/<br />
<br />
== Extensions ==<br />
<br />
A number of commonly used PHP extensions can also be found in the official repositories:<br />
<br />
$ pacman -Ss php-<br />
<br />
{{Tip|Instead of editing {{ic|/etc/php/php.ini}}, an extension may be enabled/configured in the {{ic|/etc/php/conf.d}} directory instead (e.g. {{ic|/etc/php/conf.d/gd.ini}})}}<br />
<br />
Extensions for current and older versions of PHP are also available in [[AUR]] under the prefix php-* and php56-*, e.g. {{AUR|php-imagick}}, {{AUR|php-redis}}, {{AUR|php56-mcrypt}}.<br />
<br />
=== gd ===<br />
<br />
For {{Pkg|php-gd}} uncomment the line in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=gd.so<br />
<br />
=== imagemagick ===<br />
<br />
For {{Pkg|imagemagick}} install {{Aur|php-imagick}} or install it manually using {{ic|# pecl install imagick}}. The ''pecl'' binary is included in the {{AUR|php-pear}} package. Then add<br />
<br />
extension=imagick.so<br />
<br />
to {{ic|/etc/php/php.ini}}.<br />
<br />
=== pthreads ===<br />
<br />
If you wish to have POSIX multi-threading you will need the pthreads extension. To install the pthreads (http://pecl.php.net/package/pthreads) extension using {{ic|pecl}} you are required to use a compiled version of PHP with the the thread safety support flag {{ic|--enable-maintainer-zts}}. Currently the most clean way to do this would be to rebuild the original package with the flag.<br />
<br />
Instruction can be found on the [[PHP pthreads extension]] page.<br />
<br />
=== PCNTL ===<br />
<br />
PCNTL allows you to create process directly into the server side machine. While this may seen as something you would want, it also gives the power to PHP to mess things up really badly. So it is a PHP extension that cannot be loaded like other more convenient extension. This is because of the great power it gives to PHP. To enable it PCNTL has to be compiled into PHP.<br />
<br />
The php package on ArchLinux is currently built with "--enable-pcntl", so that it should be available by default.<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Install and configure MySQL/MariaDB as described in [[MariaDB]].<br />
<br />
Uncomment [https://secure.php.net/manual/en/mysqlinfo.api.choosing.php the following lines] in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning|{{ic|mysql.so}} was [https://secure.php.net/manual/en/migration70.removed-exts-sapis.php removed] in PHP 7.0.}}<br />
<br />
You can add minor privileged MySQL users for your web scripts. You might also want to edit {{ic|/etc/mysql/my.cnf}} and uncomment the {{ic|skip-networking}} line so the MySQL server is only accessible by the localhost. You have to restart MySQL for changes to take effect.<br />
<br />
=== Redis ===<br />
Install and configure [[Redis]], then install either {{Aur|php-redis}} or {{Aur|phpredis-git}}.<br />
<br />
Uncomment the line of the package, e.g. {{ic|/etc/php/conf.d/redis.ini}}.<br />
<br />
=== PostgreSQL ===<br />
<br />
Install and configure [[PostgreSQL]], then install the {{pkg|php-pgsql}} package and uncomment the following lines in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_pgsql.so<br />
extension=pgsql.so<br />
<br />
=== Sqlite ===<br />
<br />
Install and configure [[SQLite]], then install the {{pkg|php-sqlite}} package and uncomment the following lines in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_sqlite.so<br />
extension=sqlite3.so<br />
<br />
=== XDebug ===<br />
<br />
XDebug allows you to easily debug php code using modified var_dump() function. Install {{Pkg|xdebug}} and uncomment the lines at {{ic|/etc/php/conf.d/xdebug.ini}}:<br />
<br />
zend_extension=xdebug.so<br />
xdebug.remote_enable=on<br />
xdebug.remote_host=127.0.0.1<br />
xdebug.remote_port=9000<br />
xdebug.remote_handler=dbgp<br />
<br />
{{Note|To always attempt to start a remote debugging session and connect to a debugging client it is also necessary to set {{ic|1=xdebug.remote_autostart=on}}.}}<br />
<br />
=== IMAP ===<br />
<br />
Install {{Pkg|php-imap}} and uncomment the line at {{ic|/etc/php/php.ini}}:<br />
<br />
extension=imap.so<br />
<br />
== Caching ==<br />
<br />
There are two kinds of caching in PHP: ''opcode''/''bytecode'' caching and ''userland''/''user data'' caching. Both allow for substantial gains in applications speed, and therefore should be enabled wherever possible.<br />
<br />
* [[wikipedia:Zend Opcache|Zend OPCache]] provides only ''opcode'' caching.<br />
* [https://github.com/krakjoe/apcu/ APCu] provides only ''userland'' caching.<br />
<br />
For optimal caching, you should enable '''both'''. To do this, follow ''both'' [[#OPCache]] ''and'' [[#APCu]].<br />
<br />
=== OPCache ===<br />
<br />
OPCache comes bundled with the standard PHP distribution, therefore to enable it you simply have to add or uncomment the following line in your [[#Configuration|PHP configuration file]]:<br />
{{hc|/etc/php/php.ini|2=zend_extension=opcache.so}}<br />
<br />
A list of its options and suggested settings can be found in its [https://secure.php.net/manual/en/book.opcache.php official entry] on the PHP website.<br />
<br />
{{Warning|If you choose to apply the [https://secure.php.net/manual/en/opcache.installation.php#opcache.installation.recommended suggested settings] its manual offers, be sure to read carefully [https://secure.php.net/manual/en/opcache.installation.php#114567 the first comment] below those instructions as well. In some configurations those settings result in errors such as {{ic|zend_mm_heap corrupted}} being produced.}}<br />
<br />
=== APCu ===<br />
<br />
APCu can be installed with the {{Pkg|php-apcu}} package. You can then enable it by uncommenting the following line in {{ic|/etc/php/conf.d/apcu.ini}}, or adding it to your [[#Configuration|PHP configuration file]]:<br />
<br />
extension=apcu.so<br />
<br />
Its author recommends a few [https://github.com/krakjoe/apcu/blob/master/INSTALL suggested settings], among which:<br />
* {{ic|1=apc.enabled=1}} and {{ic|1=apc.shm_size=32M}} are not really required as they represent the [https://secure.php.net/manual/en/apc.configuration.php default values];<br />
* {{ic|1=apc.ttl=7200}} on the other hand seems [https://secure.php.net/manual/en/apc.configuration.php#ini.apc.ttl rather beneficial];<br />
* finally, {{ic|1=apc.enable_cli=1}}, which although [https://secure.php.net/manual/en/apc.configuration.php#ini.apc.enable-cli not recommended] by the manual may be required by some software such as [https://github.com/owncloud/core/issues/17329#issuecomment-119248944 ownCloud].<br />
<br />
{{Tip|You can add those settings either to APCu's own {{ic|/etc/php/conf.d/apcu.ini}} '''or''' directly to your [[#Configuration|PHP configuration file]]. Just make sure not to enable the extension twice as it will result in errors being diplayed in the system logs.}}<br />
<br />
== Development tools ==<br />
<br />
=== Aptana Studio ===<br />
<br />
[http://www.aptana.com/products/studio3.html Aptana Studio] is an IDE for programming in PHP and web development. It can be installed with the {{AUR|aptana-studio}} package. Does not have a PHP debugger as of version 3.2.2.<br />
<br />
=== Eclipse PDT ===<br />
<br />
[http://www.eclipse.org/pdt/ Eclipse PDT] is the PHP variant of Eclipse. It can be installed with the {{Pkg|eclipse-php}} package. See [[Eclipse]] for more information.<br />
<br />
You would need other plugins for JavaScript support and DB query.<br />
<br />
=== Komodo ===<br />
<br />
[http://komodoide.com/ Komodo] is an IDE with good integration for PHP+HTML+JavaScript. [http://komodoide.com/komodo-edit/ Komodo Edit] is a free editor-only variant and installable with the {{AUR|komodo-edit}} package.<br />
<br />
=== Netbeans ===<br />
<br />
[https://netbeans.org/ NetBeans IDE] is a complete IDE for many languages including PHP. Includes features like debugging, refactoring, code templating, autocomplete, XML features, and web design and development functionalities (very good CSS autocomplete functionality and PHP/JavaScript code notifications/tips). Install it with the {{Pkg|netbeans}} package.<br />
<br />
=== PhpStorm ===<br />
<br />
[[Wikipedia:PhpStorm|JetBrains PhpStorm]] is a commercial, cross-platform IDE for PHP built on JetBrains' IntelliJ IDEA platform. It can be installed with the {{AUR|phpstorm}} package, or with {{AUR|phpstorm-eap}} for the 30-day trial version. You can get a free license for education from Jetbrains.[https://www.jetbrains.com/student/]<br />
<br />
=== Zend Studio ===<br />
<br />
[http://www.zend.com/products/studio/ Zend Studio] is the official PHP IDE, based on eclipse. The IDE has autocomplete, advanced code formatting, WYSIWYG html editor, refactoring, and all the eclipse features such as db access and version control integration and whatever you can get from other eclipse plugins. You can install it with the {{AUR|zendstudio}} package.<br />
<br />
== Commandline tools ==<br />
<br />
=== Composer ===<br />
<br />
[https://getcomposer.org/ Composer] is a dependency manager for PHP.<br />
It can be installed with the {{Pkg|composer}} package.<br />
<br />
Add {{ic|$HOME/.config/composer/vendor/bin}} as [[environment variable]] to execute global (e.g. {{ic|composer global require "package/name"}}) installed packages:<br />
<br />
PATH="$HOME/.config/composer/vendor/bin:$PATH"<br />
<br />
=== Box ===<br />
<br />
[http://box-project.github.io/box2/ Box] is an application for building and managing Phars.<br />
It can be installed with the {{AUR|php-box}} package.<br />
<br />
=== PDepend ===<br />
<br />
[http://pdepend.org/ PHP Depend] (pdepend) is software metrics tool for php.<br />
It can be installed with the {{AUR|pdepend}} package.<br />
<br />
=== PHP Coding Standards Fixer ===<br />
<br />
[http://cs.sensiolabs.org/ PHP Coding Standards Fixer] a is PSR-1 and PSR-2 Coding Standards<br />
fixer for your code.<br />
It can be installed with the {{AUR|php-cs-fixer}} package.<br />
<br />
=== PHP-CodeSniffer ===<br />
<br />
[http://pear.php.net/package/PHP_CodeSniffer/ PHP CodeSniffer] tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.<br />
It can be installed with the {{AUR|php-codesniffer}} package.<br />
<br />
=== phpcov ===<br />
<br />
[https://github.com/sebastianbergmann/phpcov phpcov] is a command-line frontend for the PHP_CodeCoverage library.<br />
It can be installed with the {{AUR|phpcov}} package.<br />
<br />
=== phpDox ===<br />
<br />
[http://phpdox.de/ phpDox] is the documentation generator for PHP projects. This includes, but is not limited to, API documentation.<br />
It can be installed with the {{AUR|phpdox}} package.<br />
<br />
=== PHPLoc ===<br />
<br />
[https://github.com/sebastianbergmann/phploc/ PHPLoc] is a tool for quickly measuring the size of a PHP project.<br />
It can be installed with the {{AUR|phploc}} package.<br />
<br />
=== PhpMetrics ===<br />
<br />
[http://www.phpmetrics.org/ PhpMetrics] provides various metrics about PHP projects.<br />
It can be installed with the {{AUR|phpmetrics}} package.<br />
<br />
=== phptok ===<br />
<br />
[https://github.com/sebastianbergmann/phptok phptok] is a tool for quickly dumping the tokens of a PHP sourcecode file.<br />
It can be installed with the {{AUR|phptok}} package.<br />
<br />
=== PHPUnit ===<br />
<br />
[https://phpunit.de PHPUnit] is a programmer-oriented testing framework for PHP.<br />
It can be installed with the {{AUR|phpunit}} package.<br />
<br />
=== PHPUnit Skeleton Generator===<br />
<br />
[https://github.com/sebastianbergmann/phpunit-skeleton-generator PHPUnit Skeleton Generator] is a tool that can generate skeleton test classes from production code classes and vice versa.<br />
It can be installed with the {{AUR|phpunit-skeleton-generator}} package.<br />
<br />
=== Producer ===<br />
<br />
[http://getproducer.org/ Producer] is a command-line quality-assurance tool to validate, and then release, your PHP library package.<br />
It can be installed with the {{AUR|producer}} package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== PHP Fatal error: Class 'ZipArchive' not found ===<br />
<br />
Ensure the zip extension is enabled.<br />
{{hc|$ grep zip /etc/php/php.ini|2=<br />
extension=zip.so}}<br />
<br />
=== /etc/php/php.ini not parsed ===<br />
<br />
If your {{ic|php.ini}} is not parsed, the ini file is named after the sapi it is using. For instance, if you are using uwsgi, the file would be called {{ic|/etc/php/php-uwsgi.ini}}. If you are using cli, it is {{ic|/etc/php/php-cli.ini}}.<br />
<br />
=== PHP Warning: PHP Startup: ''<module>'': Unable to initialize module ===<br />
<br />
When running {{ic|php}}, this error indicates that the aforementioned module is out of date. This will rarely happen in Arch Linux, since maintainers make sure core PHP and all modules be only available in compatible versions.<br />
<br />
This might happen in conjunction with a module compiled from the [[AUR]]. You usually could confirm this by looking at the dates of the files {{ic|/usr/lib/php/modules/}}.<br />
<br />
To fix, find a compatible update for your module, probably by looking up the [[AUR]] using its common name.<br />
<br />
If it applies, flag the outdated [[AUR]] package as ''outdated''.<br />
<br />
== See also ==<br />
<br />
* [http://www.php.net/ PHP Official Website]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server&diff=487235Apache HTTP Server2017-08-25T15:28:23Z<p>Leeo97one: /* TLS/SSL */ "Listen 443" is already in the httpd-ssl.conf file</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fa:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:Apache HTTP Server]]<br />
[[ko:Apache HTTP Server]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-hans:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|XAMPP}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
The [[Wikipedia:Apache HTTP Server|Apache HTTP Server]], or Apache for short, is a very popular web server, developed by the Apache Software Foundation.<br />
<br />
Apache is often used together with a scripting language such as PHP and database such as MySQL. This combination is often referred to as a [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). This article describes how to set up Apache and how to optionally integrate it with [[PHP]] and [[MySQL]].<br />
<br />
== Installation ==<br />
[[Install]] the {{Pkg|apache}} package.<br />
<br />
== Configuration ==<br />
Apache configuration files are located in {{ic|/etc/httpd/conf}}. The main configuration file is {{ic|/etc/httpd/conf/httpd.conf}}, which includes various other configuration files.<br />
The default configuration file should be fine for a simple setup. By default, it will serve the directory {{ic|/srv/http}} to anyone who visits your website.<br />
<br />
To start Apache, start {{ic|httpd.service}} using [[systemd#Using units|systemd]].<br />
<br />
Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple index page.<br />
<br />
For optional further configuration, see the following sections.<br />
<br />
=== Advanced options ===<br />
These options in {{ic|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
User http<br />
:For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to this UID. The default user is ''http'', which is created automatically during installation.<br />
<br />
Listen 80<br />
:This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
:If you want to setup Apache for local development you may want it to be only accessible from your computer. Then change this line to {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:This is the admin's email address which can be found on e.g. error pages.<br />
<br />
DocumentRoot "/srv/http"<br />
:This is the directory where you should put your web pages.<br />
<br />
:Change it, if you want to, but do not forget to also change {{ic|<Directory "/srv/http">}} to whatever you changed your {{ic|DocumentRoot}} to, or you will likely get a '''403 Error''' (lack of privileges) when you try to access the new document root. Do not forget to change the {{ic|Require all denied}} line to {{ic|Require all granted}}, otherwise you will get a '''403 Error'''. Remember that the DocumentRoot directory and its parent folders must allow execution permission to others (can be set with {{ic|chmod o+x /path/to/DocumentRoot}}), otherwise you will get a '''403 Error'''.<br />
<br />
AllowOverride None<br />
:This directive in {{ic|<Directory>}} sections causes Apache to completely ignore {{ic|.htaccess}} files. Note that this is now the default for Apache 2.4, so you need to explicitly allow overrides if you plan to use {{ic|.htaccess}} files. If you intend to use {{ic|mod_rewrite}} or other settings in {{ic|.htaccess}} files, you can allow which directives declared in that file can override server configuration. For more info refer to the [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|If you have issues with your configuration you can have Apache check the configuration with: {{ic|apachectl configtest}}}}<br />
<br />
More settings can be found in {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
To turn off your server's signature:<br />
ServerSignature Off<br />
<br />
To hide server information like Apache and PHP versions:<br />
ServerTokens Prod<br />
<br />
=== User directories ===<br />
<br />
User directories are available by default through http://localhost/~yourusername/ and show the contents of {{ic|~/public_html}} (this can be changed in {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
If you do not want user directories to be available on the web, comment out the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
{{Accuracy|It is not necessary to set {{ic|+x}} for every users, setting it only for the webserver via ACLs suffices (see [[Access Control Lists#Granting execution permissions for private files to a Web Server]]).}}<br />
<br />
You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{ic|~/public_html}} must be executable for others ("rest of the world"):<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
Restart {{ic|httpd.service}} to apply any changes. See also [[Umask#Set the mask value]].<br />
<br />
=== TLS/SSL ===<br />
{{Warning|If you plan on implementing SSL/TLS, know that some variations and implementations are [https://weakdh.org/#affected still] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|vulnerable to attack]]. For details on these current vulnerabilities within SSL/TLS and how to apply appropriate changes to the web server, visit http://disablessl3.com/ and https://weakdh.org/sysadmin.html}}<br />
{{pkg|openssl}} provides TLS/SSL support and is installed by default on Arch installations.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, uncomment the following three lines:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
For TLS/SSL, you will need a key and certificate. If you own a public domain, you can use [[Let's Encrypt]] to obtain a certificate for free, otherwise follow [[#Create a key and (self-signed) certificate]].<br />
<br />
After obtaining a key and certificate, make sure the {{ic|SSLCertificateFile}} and {{ic|SSLCertificateKeyFile}} lines in {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} point to the key and certificate. If a concatenated chain of CA certificates was also generated, add that filename against {{ic|SSLCertificateChainFile}}.<br />
<br />
Finally, restart {{ic|httpd.service}} to apply any changes.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== Create a key and (self-signed) certificate ====<br />
<br />
Create a private key and self-signed certificate. This is adequate for most installations that do not require a [[wikipedia:Certificate signing request|CSR]]:<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|The -days switch is optional and RSA keysize can be as low as 2048 (default).}}<br />
<br />
If you need to create a [[wikipedia:Certificate signing request|CSR]], follow these keygen instructions instead of the above:<br />
<br />
# cd /etc/httpd/conf<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|For more openssl options, read the [https://www.openssl.org/docs/apps/openssl.html man page] or peruse openssl's [https://www.openssl.org/docs/ extensive documentation].}}<br />
<br />
=== Virtual hosts ===<br />
<br />
{{Note|You will need to add a separate {{ic|<VirtualHost *:443>}} section for virtual host SSL support.<br />
See [[#Managing many virtual hosts]] for an example file.}}<br />
<br />
If you want to have more than one host, uncomment the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
In {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts. The default file contains an elaborate example that should help you get started.<br />
<br />
To test the virtual hosts on you local machine, add the virtual names to your {{ic|/etc/hosts}} file:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
Restart {{ic|httpd.service}} to apply any changes.<br />
<br />
==== Managing many virtual hosts ====<br />
<br />
If you have a huge amount of virtual hosts, you may want to easily disable and enable them. It is recommended to create one configuration file per virtual host and store them all in one folder, eg: {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Then place the single configuration files in it:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
In the last step, {{ic|Include}} the single configurations in your {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
You can enable and disable single virtual hosts by commenting or uncommenting them.<br />
<br />
A very basic vhost file will look like this:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost *:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost *:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this at the end of the {{ic|LoadModule}} list:<br />
LoadModule php7_module modules/libphp7.so<br />
AddHandler php7-script php<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} using [[systemd#Using units|systemd]].<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Enable proxy modules:<br />
{{hc|/etc/httpd/conf/httpd.conf|<nowiki><br />
LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, restart {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== AH00072: make_sock: could not bind to address ===<br />
<br />
This can be caused by multiple things. Most common issue being that something is already listening on a given port, check via netstat that this is not happening:<br />
<br />
# netstat -lnp | grep -e :80 -e :443<br />
<br />
If you get any output, stop the given service that's taking up the port or kill the runaway process that is causing the port to be bound, and try again.<br />
<br />
Another issue could be that Apache is not starting as root for some reason - try starting it manually and see if you still get the AH0072 error.<br />
<br />
# httpd -k start<br />
<br />
Finally, you can also have an error with your config and you are listening twice on the given port. Following is an example of a bad config that will trigger this issue:<br />
<br />
Listen 0.0.0.0:80<br />
Listen [::]:80<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Zswap&diff=482966Zswap2017-07-26T09:23:25Z<p>Leeo97one: /* Customize the maximum allowed size */ adding the default value of "zswap.max_pool_percent"</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ja:Zswap]]<br />
{{Related articles start}}<br />
{{Related|Kernel parameters}}<br />
{{Related|Mkinitcpio}}<br />
{{Related articles end}}<br />
"Zswap is a Linux kernel feature providing a compressed write-back cache for swapped pages. Instead of moving memory pages to a swap device when they are to be swapped out, zswap performs their compression and then stores them into a memory pool dynamically allocated inside system's RAM." - Wikipedia<br />
<br />
zswap is a compressed RAM cache for swap devices. Pages which would otherwise be swapped out to disk will instead be compressed and maintained in RAM until RAM is exhausted, after which the least recently used (LRU) pages will be sent to disk. This is [[Improving performance#Zram_or_zswap|in contrast to zram]], which is a swap device in RAM and does not require a backing swap device.<br />
The long and the short of it is that you need to set up a [[Swap]] device in order to use zswap.<br />
<br />
==Enabling zswap==<br />
<br />
To enable zswap at runtime, execute the following command:<br />
# echo 1 > /sys/module/zswap/parameters/enabled<br />
<br />
To enable zswap permanently, add this to your kernel boot parameters [[Kernel parameters#Configuration]]:<br />
zswap.enabled=1<br />
<br />
{{Tip|You can use the {{pkg|systemd-swap}} package to enable zswap. [[#Customizing zswap|Configure zswap]] in {{ic|/etc/systemd/swap.conf}}.}}<br />
<br />
==Customizing zswap==<br />
By design, zswap has relatively few customizable parameters. zswap does not use a preallocated pool of memory to hold compressed and swapped data.<br />
<br />
===Customize the maximum allowed size===<br />
If you want to put a maximum bound on the percentage (20 by default) of memory that zswap can use, add this to your kernel boot parameters:<br />
zswap.max_pool_percent=25<br />
This can also be set in {{ic|sysfs}}.<br />
<br />
===Changing the compression algorithm===<br />
zswaps compression algorithm can also be set as a kernel boot parameter:<br />
zswap.compressor=lzo #deflate #lz4<br />
<br />
it can also be set at runtime by writing it to /sys/module/zswap/parameters/compressor, e.g:<br />
echo lz4 > /sys/module/zswap/parameters/compressor<br />
<br />
====Enable LZ4 compression (faster than lzo and deflate, less compression) ====<br />
<br />
#Add {{ic|1=lz4 lz4_compress}} to the [[Mkinitcpio#MODULES]] array.<br />
#Rerun {{ic|mkinitcpio}}.<br />
#Add {{ic|1=zswap.compressor=lz4}} to your kernel parameters.<br />
#Reboot<br />
#Check dmesg :<br />
$ dmesg | grep zswap:<br />
[ 0.918052] zswap: loaded using pool lz4/zbud<br />
<br />
== See also ==<br />
<br />
* [https://www.kernel.org/doc/Documentation/vm/zswap.txt Zswap documentation].<br />
* [https://lkml.org/lkml/2013/7/17/147 zswap: How to determine whether it is compressing swap pages?].<br />
* [https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/entry/new_linux_zswap_compression_functionality7?lang=en IBM Developer Works Article (with benchmarks)].<br />
* [http://askubuntu.com/questions/471912/zram-vs-zswap-vs-zcache-ultimate-guide-when-to-use-which-one Ask Ubuntu: zram vs. zswap vs. zcache].<br />
* [https://bbs.archlinux.org/viewtopic.php?id=169585 Archlinux forum thread].</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Steam/Wine&diff=477709Steam/Wine2017-05-18T18:01:43Z<p>Leeo97one: /* Steam links in Firefox, Chrome, etc */ Replacing xorg-utils by xorg-xprop</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam/Wine]]<br />
{{Related articles start}}<br />
{{Related|Steam}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
This article covers running Steam in Wine, in order to play games not available through the native Linux [[Steam]].<br />
<br />
== Installation ==<br />
Install Wine as described in [[Wine]].<br />
<br />
Install the required Microsoft fonts: {{AUR|ttf-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]]. You can also install these fonts through [[Wine#Winetricks|Winetricks]]: {{ic|winetricks corefonts}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-ms-win8}} or {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]: <br />
$ wine SteamSetup.exe<br />
<br />
== Starting Steam ==<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64:<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
{{Note|<br />
*If text is not rendered (properly), append {{ic|-no-dwrite}} to this command. See [[#No text rendered problem]] for more information.<br />
*If you are using an Nvidia card through [[Bumblebee]], you should prefix this command with {{ic|optirun}}.<br />
}}<br />
<br />
You should consider making an alias to easily start Steam (and put it in your shell's rc file), example:<br />
alias steam-wine='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
== Tips ==<br />
<br />
=== Performance ===<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your {{ic|steam-wine}} alias to only disable it for Steam:<br />
alias steam-wine='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
$ wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
=== Source engine launch options ===<br />
<br />
Go to ''Properties > Set Launch Options'', e.g.:<br />
-console -dxlevel 90 -width 1280 -height 1024<br />
* {{ic|console}}<br />
: Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
: Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software wiki https://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
: Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to https://developer.valvesoftware.com/wiki/Command_Line_Options for a complete list of launch options.<br />
<br />
=== Using a pre-existing Steam installation ===<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
$ cd ~/.wine/drive_c/Program\ Files/ <br />
$ mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
$ ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|<br />
* If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.<br />
* If you still have trouble starting games, use {{ic|# mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked with {{ic|TF2}} for one Arch user.<br />
}}<br />
<br />
=== Steam links in Firefox, Chrome, etc ===<br />
<br />
To make {{ic|steam://}} urls in your browser connect with Steam in Wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for KDE, others involve tinkering with desktop files or the Local State file for Chromium. These seem to only work in Firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but Firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic|/usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable:<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{Pkg|xdg-utils}} if installed. In XFCE, you will also need {{Pkg|xorg-xprop}}.<br />
<br />
* Create {{ic|~/.config/mimeo/associations.txt}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In Chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with Firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|Steam links in Firefox, Chrome, etc<br />
* If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.<br />
* Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.<br />
}}<br />
<br />
=== Steam Client Store/(built-in) Web Browser not working ===<br />
Launch Steam 32-bit disabling "CEF-based runtime sandboxing" support:<br />
{{bc|wine ~/.wine/drive_c/Program Files/Steam/Steam.exe -no-cef-sandbox<br />
}}<br />
<br />
If this does not work, open winecfg, "Add application...", navigate to ~/.wine/Program Files/Steam/bin/, choose steamwebhelper.exe, and set its "Windows Version" at the bottom to Windows XP. <br />
<br />
=== No text rendered problem ===<br />
<br />
{{Note|This should no longer be an issue with Wine 1.7.50 and up since the implementation of dwrite has progressed sufficiently.}}<br />
<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
{{Note|Although this method does currently work, It is not persistent if Steam relaunches automatically (i.e. update), or if you follow a URL link. <br />
*This can be achieved by going through '''''winecfg > Libraries''''' and setting the '''"dwrite"''' override to ''"disable"''<br />
'''Or'''<br />
*{{ic|$ wine reg add 'HKCU\Software\Valve\Steam' /v DWriteEnable /t REG_DWORD /d 00000000}}<br />
}}<br />
<br />
=== Proxy settings ===<br />
<br />
Steam may use environment variables of the form {{ic|[protocol]_proxy}} to determine the proxy for HTTP/HTTPS.<br />
<br />
$ export http_proxy=http://your.proxy.here:port<br />
$ export https_proxy=$http_proxy<br />
<br />
However, it seems that it does not support sockv5.<br />
<br />
== See also ==<br />
* [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Steam/Wine&diff=474806Steam/Wine2017-04-21T17:21:52Z<p>Leeo97one: /* Installation */ Now using the EXE file</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam/Wine]]<br />
{{Related articles start}}<br />
{{Related|Steam}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
This article covers running Steam in Wine, in order to play games not available through the native Linux [[Steam]].<br />
<br />
== Installation ==<br />
Install Wine as described in [[Wine]].<br />
<br />
Install the required Microsoft fonts: {{AUR|ttf-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]]. You can also install these fonts through [[Wine#Winetricks|Winetricks]]: {{ic|winetricks corefonts}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-ms-win8}} or {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]: <br />
$ wine SteamSetup.exe<br />
<br />
== Starting Steam ==<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64:<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
{{Note|<br />
*If text is not rendered (properly), append {{ic|-no-dwrite}} to this command. See [[#No text rendered problem]] for more information.<br />
*If you are using an Nvidia card through [[Bumblebee]], you should prefix this command with {{ic|optirun}}.<br />
}}<br />
<br />
You should consider making an alias to easily start Steam (and put it in your shell's rc file), example:<br />
alias steam-wine='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
== Tips ==<br />
<br />
=== Performance ===<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your {{ic|steam-wine}} alias to only disable it for Steam:<br />
alias steam-wine='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
$ wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
=== Source engine launch options ===<br />
<br />
Go to ''Properties > Set Launch Options'', e.g.:<br />
-console -dxlevel 90 -width 1280 -height 1024<br />
* {{ic|console}}<br />
: Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
: Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software wiki https://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
: Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to https://developer.valvesoftware.com/wiki/Command_Line_Options for a complete list of launch options.<br />
<br />
=== Using a pre-existing Steam installation ===<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
$ cd ~/.wine/drive_c/Program\ Files/ <br />
$ mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
$ ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|<br />
* If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.<br />
* If you still have trouble starting games, use {{ic|# mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked with {{ic|TF2}} for one Arch user.<br />
}}<br />
<br />
=== Steam links in Firefox, Chrome, etc ===<br />
<br />
To make {{ic|steam://}} urls in your browser connect with Steam in Wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for KDE, others involve tinkering with desktop files or the Local State file for Chromium. These seem to only work in Firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but Firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic|/usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable:<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{Pkg|xdg-utils}} if installed. In XFCE, you will also need {{Pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo/associations.txt}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In Chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with Firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|Steam links in Firefox, Chrome, etc<br />
* If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.<br />
* Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.<br />
}}<br />
<br />
=== Steam Client Store/(built-in) Web Browser not working ===<br />
Launch Steam 32-bit disabling "CEF-based runtime sandboxing" support:<br />
{{bc|wine ~/.wine/drive_c/Program Files/Steam/Steam.exe -no-cef-sandbox<br />
}}<br />
<br />
If this does not work, open winecfg, "Add application...", navigate to ~/.wine/Program Files/Steam/bin/, choose steamwebhelper.exe, and set its "Windows Version" at the bottom to Windows XP. <br />
<br />
=== No text rendered problem ===<br />
<br />
{{Note|This should no longer be an issue with Wine 1.7.50 and up since the implementation of dwrite has progressed sufficiently.}}<br />
<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
{{Note|Although this method does currently work, It is not persistent if Steam relaunches automatically (i.e. update), or if you follow a URL link. <br />
*This can be achieved by going through '''''winecfg > Libraries''''' and setting the '''"dwrite"''' override to ''"disable"''<br />
'''Or'''<br />
*{{ic|$ wine reg add 'HKCU\Software\Valve\Steam' /v DWriteEnable /t REG_DWORD /d 00000000}}<br />
}}<br />
<br />
=== Proxy settings ===<br />
<br />
Steam may use environment variables of the form {{ic|[protocol]_proxy}} to determine the proxy for HTTP/HTTPS.<br />
<br />
$ export http_proxy=http://your.proxy.here:port<br />
$ export https_proxy=$http_proxy<br />
<br />
However, it seems that it does not support sockv5.<br />
<br />
== See also ==<br />
* [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=467392List of applications/Internet2017-02-01T19:42:35Z<p>Leeo97one: /* Other */ Replacing discord-canary with the stable discord release</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[cs:List of applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[pt:List of applications/Internet]]<br />
[[ru:List of applications/Internet]]<br />
[[uk:List of applications/Internet]]<br />
[[zh-hans:List of applications/Internet]]<br />
[[zh-hant:List of applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, ncurses, GTK and Dmenu clients are available.|https://01.org/connman|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|https://wiki.gnome.org/Projects/NetworkManager|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through [[udev]].|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|https://launchpad.net/wicd|{{Pkg|wicd}}}}<br />
<br />
=== VPN clients ===<br />
<br />
* {{App|[[OpenVPN]]|To connect to OpenVPN VPNs.|https://openvpn.net/|{{pkg|openvpn}}}}<br />
* {{App|[[OpenConnect]]|Supports Cisco and Juniper VPNs.|http://www.infradead.org/openconnect/|{{pkg|openconnect}}}}<br />
* {{App|[[PPTP Client]]|To connect to PPTP VPNs, like Microsoft VPNs (MPPE).|http://pptpclient.sourceforge.net/|{{pkg|pptpclient}}}}<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [xlinks -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://conkeror.org/|{{AUR|conkeror}}}}<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|A customized build of Firefox ESR distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}} or {{AUR|icecat-bin}}}}<br />
* {{App|[[Wikipedia:SeaMonkey|SeaMonkey]]|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
<br />
====== Chromium spin-offs ======<br />
<br />
* {{App|[[Google Chrome]]|Proprietary web browser developed by Google.|https://www.google.com/chrome/|{{AUR|google-chrome}}}}<br />
* {{App|Inox|A privacy-focused patchset for Chromium, which disables Google services, proprietary features, prevents "calling home" and unhides all extensions.|https://github.com/gcarq/inox-patchset|{{AUR|inox}} or {{AUR|inox-bin}}}}<br />
* {{App|Iridium|A privacy-focused [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/tree/?h&#61;patchview patchset] for Chromium. See [https://github.com/iridium-browser/iridium-browser/wiki/Differences-between-Iridium-and-Chromium differences from Chromium].|https://iridiumbrowser.de/|{{AUR|iridium}}}}<br />
* {{App|[[Opera]]|Highly customizable proprietary browser with focuses on an adherence to web rendering standards.|https://opera.com|{{Pkg|opera}}}}<br />
* {{App|Ungoogled chromium|Modifications to Google Chromium for removing Google integration and enhancing privacy, control, and transparency|https://github.com/Eloston/ungoogled-chromium|{{AUR|ungoogled-chromium}}}}<br />
* {{App|[[Wikipedia:SlimBrowser|Slimjet]]|Fast, smart and powerful proprietary browser based on Chromium.|http://www.slimjet.com/|{{AUR|slimjet}}}}<br />
* {{App|[[Vivaldi]]|An advanced proprietary browser made with the power user in mind.|https://vivaldi.com/|{{AUR|vivaldi}}}}<br />
* {{App|[[Wikipedia:Yandex Browser|Yandex Browser]]|Proprietary browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|https://browser.yandex.com/|{{AUR|yandex-browser-beta}}}}<br />
<br />
====== Browsers based on qt5-webengine ======<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt toolkit and Qt WebEngine (or KHTML layout engine), part of {{Grp|kdebase}}. |http://konqueror.org/|{{Pkg|konqueror}}}}<br />
* {{App|Liri|A minimalistic material design web browser written for Papyros.|http://liriproject.me/browser|{{AUR|liri-browser}}}}<br />
* {{App|[[Otter Browser]]|Browser aiming to recreate classic Opera (12.x) UI using Qt5. Experimental support for QtWebEngine is available.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|Qt WebBrowser|Browser for embedded devices developed using the capabilities of Qt and Qt WebEngine.|http://doc.qt.io/QtWebBrowser/|{{AUR|qtwebbrowser}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on QtWebEngine, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
<br />
====== Other browsers based on Chromium's Content module ======<br />
<br />
* {{App|[[Wikipedia:Brave (web browser)|Brave]]|Web browser that blocks ads and trackers by default. Based on the [https://github.com/brave/muon Muon] platform.|https://www.brave.com/|{{AUR|brave}}}}<br />
* {{App|Min|A smarter, faster web browser based on the [http://electron.atom.io/ Electron] platform.|https://minbrowser.github.io/min/|{{Pkg|min}}}}<br />
* {{App|theWeb|A web browser based on Qt using the [https://bitbucket.org/chromiumembedded/cef Chromium Embedded Framework], with Linux integration (such as MPRIS) in mind.|https://github.com/vicr123/theweb|{{AUR|theweb}}}}<br />
<br />
===== WebKit-based =====<br />
<br />
See also [[Wikipedia:WebKit]].<br />
<br />
====== Browsers based on webkit2gtk ======<br />
<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|[[Lariza]]|A simple, experimental web browser using GTK+ 3, GLib and WebKit2GTK+.|https://www.uninformativ.de/projects/lariza/|{{AUR|lariza}}}}<br />
* {{App|[[Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Rainbow Lollipop|The visual history browser. In early state of development.|http://rainbow-lollipop.de/|{{AUR|rainbow-lollipop-git}}}}<br />
* {{App|[[Surf]] 2|A simple web browser based on WebKit2GTK+. Experimental branch.|http://surf.suckless.org|{{aur|surf-webkit2gtk-git}}}}<br />
* {{App|Webby|Allows to use web apps as regular desktop apps, integrated with the OS, without tabs and using the default system launcher. In early state of development.|https://launchpad.net/webby-browser|{{aur|webby-browser-bzr}}}}<br />
<br />
====== Browsers based on webkitgtk/webkitgtk2 ======<br />
<br />
{{Warning|The following browsers are based on one of four WebKit ports that are today considered insecure and outdated. GTK+ browsers should be switching to webkit2gtk. More info [https://blogs.gnome.org/mcatanzaro/2016/02/01/on-webkit-security-updates/ here].}}<br />
<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji-git}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{AUR|luakit}}}}<br />
* {{App|[[Surf]]|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[UZBL-Browser|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] |Webkit minimalist web browser (formerly known as ''xxxterm'') with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{Pkg|xombrero}}}}<br />
<br />
====== Browsers based on qt5-webkit/qtwebkit ======<br />
<br />
{{Warning|The following browsers are based on one of four WebKit ports that are today considered insecure and outdated. Qt browsers should be switching to qt5-webengine (Blink). More info [https://blogs.gnome.org/mcatanzaro/2016/02/01/on-webkit-security-updates/ here].}}<br />
<br />
* {{App|[[Wikipedia:Arora (web browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://github.com/arora/arora|{{AUR|arora-git}}}}<br />
* {{App|[[Wikipedia:Dooble|Dooble]]|A safe WebKit Web browser.|http://dooble.sourceforge.net/|{{AUR|dooble}}}}<br />
* {{App|[[Otter Browser]]|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{Pkg|qutebrowser}}}}<br />
* {{App|[[Wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{AUR|rekonq}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]]. Uses its own layout engine.|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own layout engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|A Firefox fork focussing on speed, with a pre-Firefox 29 interface. Uses [[Wikipedia:Goanna (software)|Goanna]] layout engine, a fork of Gecko. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.|http://www.palemoon.org/|{{AUR|palemoon}}}}<br />
<br />
=== File sharing ===<br />
<br />
==== Download managers ====<br />
<br />
* {{App|[[Wikipedia:Wget#GWget|Gwget]]|Download manager for GNOME.|https://projects.gnome.org/gwget/|{{Pkg|gwget}}}}<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|uGet|GTK+ download manager featuring download classification and HTML import.|http://ugetdm.com/|{{Pkg|uget}}}}<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|ncftp|A set of free application programs implementing FTP.|http://www.ncftp.com/|{{Pkg|ncftp}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
See also [[Wikipedia:List of FTP server software]].<br />
<br />
* {{App|[[bftpd]]|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== SSH/SFTP ====<br />
<br />
===== SFTP servers =====<br />
<br />
* {{App|[[SSH]]|SFTP is a network protocol that provides file access, file transfer, and file management over any reliable data stream.|https://www.openssh.com|{{Pkg|openssh}}}}<br />
<br />
===== SFTP clients =====<br />
<br />
* {{App|[[SSHFS]]|A network filesystem client to connect to SSH (SFTP) servers.|https://github.com/libfuse/sshfs/|{{Pkg|sshfs}}}}<br />
<br />
==== Distributed file systems ====<br />
<br />
* {{App|[[Ceph]]|Distributed object store and file system designed to provide excellent performance, reliability and scalability.|https://ceph.com/|{{Pkg|ceph}}}}<br />
<br />
* {{App|GlusterFS|Cluster file system capable of scaling to several peta-bytes.|http://www.gluster.org/|{{Pkg|glusterfs}}}}<br />
<br />
* {{App|[[OpenAFS]]|Open source implementation of the AFS distributed file system|http://www.openafs.org|{{AUR|openafs}}}}<br />
<br />
* {{App|Sheepdog|Distributed object storage system for volume and container services and manages the disks and nodes intelligently.|https://sheepdog.github.io/sheepdog/}}<br />
<br />
* {{App|[[Wikipedia:Tahoe-LAFS|Tahoe-LAFS]]|Tahoe Least-Authority Filesystem is a free and open, secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.<br />
|https://tahoe-lafs.org/|{{AUR|tahoe-lafs}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|http://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}} {{Pkg|qbittorrent-nox}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|https://www.kde.org/applications/internet/ktorrent/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
* {{App|Vuze Plus Extreme Mod|A modded version of the Vuze BitTorrent client with multiple spoofing capabilities.|http://www.sb-innovation.de/f41/vuze-extreme-mod-sb-innovation-5-6-1-3-a-32315/|{{AUR|vuze-extreme-mod}}}}<br />
<br />
==== Other P2P networks ====<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|Sendanywhere| GTK2 client for the cross platform P2P file sharing service, Sendanywhere. Allow users to send files of any type and size to other Android, iOS, and Desktop devices.|https://www.send-anywhere.com|{{AUR|sendanywhere}}}}<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|https://sourceforge.net/projects/sharelin/|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
==== Video downloaders ====<br />
<br />
* {{App|youtube-dl|Download videos from YouTube and many other platforms.|http://rg3.github.io/youtube-dl|{{Pkg|youtube-dl}}}}<br />
* {{App|You-Get|Dumb downloader that scrapes the web.|https://you-get.org/|{{Pkg|you-get}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|http://patches.freeiz.com/alpine/|{{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|https://www.sdaoden.eu/code.html#s-mailx|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|[[nmh]]|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|https://sup-heliotrope.github.io/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Balsa|Simple and light email client for GNOME.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client that is part of the GNOME project. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|FossaMail|FossaMail is a Mozilla Thunderbird-based mail, news and chat client by the Pale Moon developers.|http://www.fossamail.org|{{AUR|fossamail-bin}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|N1|A new mail client, built on the modern web and designed to be extended.|https://www.nylas.com/N1/|{{AUR|n1}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]]|Email client included in the SeaMonkey suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
* {{App|WMail|The missing desktop client for Gmail & Google Inbox |http://thomas101.github.io/wmail/|{{AUR|wmail-bin}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|[[Wikipedia:ChatZilla|ChatZilla]]|Clean, easy to use and highly extensible Internet Relay Chat (IRC) client, built on the Mozilla platform using [[Wikipedia:XULRunner|XULRunner]].|http://chatzilla.hacksrus.com/|{{AUR|chatzilla}}}}<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://wiki.gnome.org/Projects/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari/|{{Pkg|polari}}}}<br />
* {{App|[[Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}} {{Pkg|quassel-monolithic}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Command line ======<br />
* {{App|jp|CLI frontend for Salut à Toi, multi-purpose XMPP client|https://salut-a-toi.org|{{AUR|sat-jp}}}}<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}<br />
* {{App|Primitivus|Console frontend for Salut à Toi, multi-purpose XMPP client|https://salut-a-toi.org|{{AUR|sat-primitivus}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
* {{App|xmpp-client|A minimalist XMPP client with OTR support.|https://github.com/agl/xmpp-client|{{AUR|go-xmpp-client}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing.|http://psi-im.org/|{{Pkg|psi}} {{AUR|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|http://psi-plus.com/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}}}<br />
* {{App|[[Openfire]]|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|see [[Tox]]}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (SIP client)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{AUR|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
* {{App|[[Wikipedia:Discord (software)|Discord]]|All-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone.|https://discordapp.com/|{{AUR|discord}}}}<br />
* {{App|GameVox|Voice communication for your gaming community, partly based on Mumble source code.|https://www.gamevox.com/|{{AUR|gamevox}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:Ring_(software)|Ring]] |Open-source SIP/IAX2 compatible softphone with PulseAudio support (formerly known as SFLphone).|http://ring.cx/|{{AUR|ring-daemon}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://github.com/drizzt/gladstone|{{AUR|gladstone-drizztbsd-git}}{{Broken package link|{{aur-mirror|gladstone-drizztbsd-git}}}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition applications]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{Pkg|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}.|http://kde.org/applications/internet/akregator/|{{Pkg|akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.|https://git.gnome.org/browse/blam|{{AUR|blam}}}}<br />
* {{App|[[Evolution]] RSS|Plugin for Evolution Mail that enables reading of RSS/RDF/ATOM feeds.|http://gnome.eu.org/index.php/Evolution_RSS_Reader_Plugin|{{Pkg|evolution-rss}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.|http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://github.com/martinrotter/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]]|Email client included in the SeaMonkey suite which also functions as a pretty nice news aggregator.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/archive/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{Pkg|pan}}}}<br />
* {{app|[[SABnzbd]]|SABnzbd is an open-source binary newsreader written in Python.|https://sabnzbd.org/|{{aur|sabnzbd}} {{aur|sabnzbd-git}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{App|Nikola|A static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{AUR|python-nikola}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{Pkg|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux.|http://birdieapp.github.io/ |{{AUR|birdie-git}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}<br />
* {{App|Rainbowstream|A powerful and fully-featured console Twitter client written in Python.|http://www.rainbowstream.org/|{{AUR|rainbowstream}}}}<br />
* {{App|ttytter|Easily scriptable Twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{AUR|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|https://github.com/satanas/Turpial|{{AUR|turpial-git}}}}<br />
* {{App|turses|Twitter client for the console based off ''tyrs'' with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Remote desktop ===<br />
<br />
See also [[Wikipedia:Remote desktop software]] and [[Wikipedia:Comparison of remote desktop software]].<br />
<br />
==== Remote desktop clients ====<br />
<br />
* {{App|[[Wikipedia:GNOME Boxes|GNOME Boxes]]|A simple GNOME 3 application to access remote or virtual systems. Supports VNC and SPICE.|https://wiki.gnome.org/Apps/Boxes|{{Pkg|gnome-boxes}}}}<br />
* {{App|GVncViewer|Simple VNC Client on Gtk-VNC.|https://wiki.gnome.org/Projects/gtk-vnc|{{Pkg|gtk-vnc}}}}<br />
* {{App|[[Wikipedia:KRDC|KRDC]]|Remote Desktop Client for KDE. Supports RDP and VNC. Part of {{Grp|kdenetwork}}.|https://www.kde.org/applications/internet/krdc/|{{Pkg|krdc}}}}<br />
* {{App|[[Remmina]]|Remote desktop client written in GTK+. Supports RDP, VNC, NX, XDMCP and SSH.|http://www.remmina.org/|{{Pkg|remmina}}}}<br />
* {{App|[[TigerVNC|vncviewer (TigerVNC)]]|VNC viewer for X.|http://tigervnc.org/|{{Pkg|tigervnc}}}}<br />
* {{App|[[Wikipedia:Vinagre|Vinagre]]|Remote desktop viewer for GNOME. Supports RDP, VNC, SPICE and SSH. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Vinagre|{{Pkg|vinagre}}}}<br />
* {{App|xfreerdp|FreeRDP X11 client.|http://www.freerdp.com/|{{Pkg|freerdp}}}}<br />
* {{App|[[X2Go]] Client|A graphical client (Qt4) for the X2Go system that uses the [[w:NX technology|NX technology]] protocol.|http://wiki.x2go.org/doku.php|{{Pkg|x2goclient}}}}<br />
<br />
==== Remote desktop servers ====<br />
<br />
* {{App|Krfb|VNC server for KDE. Part of {{Grp|kdenetwork}}.|https://www.kde.org/applications/system/krfb|{{Pkg|krfb}}}}<br />
* {{App|[[Vino]]|VNC server for GNOME. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Projects/Vino|{{Pkg|vino}}}}<br />
* {{App|[[TigerVNC|x0vncserver (TigerVNC)]]|VNC Server for X displays.|http://tigervnc.org/|{{Pkg|tigervnc}}}}<br />
* {{App|[[x11vnc]]|VNC server for real X displays.|http://www.karlrunge.com/x11vnc/|{{Pkg|x11vnc}}}}<br />
* {{App|[[X2Go]] Server|An open source remote desktop software that uses the [[w:NX technology|NX technology]] protocol.|http://wiki.x2go.org/doku.php|{{Pkg|x2goserver}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc). Do ''not'' use it.}}<br />
<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|https://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|haste}}{{Broken package link|{{aur-mirror|haste}}}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{AUR|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse-git}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|[[pbpst]]|A small tool to interact with pb instances (eg [https://ptpb.pw ptpb.pw]).|https://github.com/HalosGhost/pbpst|{{Pkg|pbpst}} {{AUR|pbpst-git}}}}<br />
* {{App|ruby-haste|Client for [http://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See [[Bitcoin#Bitcoin software]].<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=Unified_Extensible_Firmware_Interface&diff=466473Unified Extensible Firmware Interface2017-01-23T22:14:54Z<p>Leeo97one: Add quotes for bcdedit command (to work with Windows 10)</p>
<hr />
<div>[[Category:Boot process]]<br />
[[es:Unified Extensible Firmware Interface]]<br />
[[it:Unified Extensible Firmware Interface]]<br />
[[ja:Unified Extensible Firmware Interface]]<br />
[[ru:Unified Extensible Firmware Interface]]<br />
[[zh-hans:Unified Extensible Firmware Interface]]<br />
{{Related articles start}}<br />
{{Related|Arch boot process}}<br />
{{Related|Master Boot Record}}<br />
{{Related|EFI System Partition}}<br />
{{Related|GUID Partition Table}}<br />
{{Related|Secure Boot}}<br />
{{Related|UEFI/Hardware}}<br />
{{Related articles end}}<br />
{{Warning|While the choice to install in UEFI mode is forward looking, early vendor UEFI implementations ''may'' carry more bugs than their BIOS counterparts. It is advised to do a search relating to your particular mainboard model before proceeding.}}<br />
<br />
The [http://www.uefi.org/ Unified Extensible Firmware Interface] (EFI or UEFI for short) is a new model for the interface between operating systems and firmware. It provides a standard environment for booting an operating system and running pre-boot applications.<br />
<br />
It is distinct from the commonly used "[[MBR]] boot code" method followed for [[Wikipedia:BIOS|BIOS]] systems. See [[Arch boot process]] for their differences and the boot process using UEFI. To set up UEFI Boot Loaders, see [[Boot loaders]].<br />
<br />
== UEFI versions ==<br />
* UEFI started as Intel's EFI in versions 1.x.<br />
* Later, a group of companies called the UEFI Forum took over its development, which renamed it as Unified EFI starting with version 2.0.<br />
* Unless specified as EFI 1.x, EFI and UEFI terms are used interchangeably to denote UEFI 2.x firmware.<br />
* Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one (U)EFI specification and therefore is not a standard UEFI firmware. Unless stated explicitly, these instructions are general and some of them may not work or may be different in [[MacBook|Apple Macs]].<br />
<br />
The latest UEFI Specification can be found at http://uefi.org/specifications.<br />
<br />
== UEFI Firmware bitness ==<br />
<br />
Under UEFI, every program whether it is an OS loader or a utility (e.g. a memory testing app or recovery tool), should be a UEFI Application corresponding to the EFI firmware bitness/architecture.<br />
<br />
The vast majority of UEFI firmwares, including recent Apple Macs, use x86_64 EFI firmware. The only known devices that use IA32 (32-bit) EFI are older (pre 2008) Apple Macs, some Intel Cloverfield ultrabooks and some older Intel Server boards that are known to operate on Intel EFI 1.10 firmware.<br />
<br />
An x86_64 EFI firmware does not include support for launching 32-bit EFI apps (unlike x86_64 Linux and Windows versions which include such support). Therefore the UEFI application must be compiled for that specific firmware processor bitness/architecture.<br />
<br />
=== Non Macs ===<br />
<br />
Check whether the dir {{ic|/sys/firmware/efi}} exists, if it exists it means the kernel has booted in EFI mode. In that case the UEFI bitness is same as kernel bitness. (ie. i686 or x86_64)<br />
<br />
{{Note|Intel Atom System-on-Chip systems ship with 32-bit UEFI (as on 2 November 2013). See [[#Booting 64-bit kernel on 32-bit UEFI]] for more info.}}<br />
<br />
=== Apple Macs ===<br />
<br />
Pre-2008 Macs mostly have i386-efi firmware while >=2008 Macs have mostly x86_64-efi. All Macs capable of running Mac OS X Snow Leopard 64-bit Kernel have x86_64 EFI 1.x firmware.<br />
<br />
To find out the arch of the efi firmware in a Mac, type the following into the Mac OS X terminal:<br />
<br />
$ ioreg -l -p IODeviceTree | grep firmware-abi<br />
<br />
If the command returns EFI32 then it is IA32 (32-bit) EFI firmware. If it returns EFI64 then it is x86_64 EFI firmware. Most of the Macs do not have UEFI 2.x firmware as Apple's EFI implementation is not fully compliant with UEFI 2.x Specification.<br />
<br />
== Linux Kernel Config options for UEFI ==<br />
<br />
The required Linux Kernel configuration options for UEFI systems are :<br />
<br />
CONFIG_RELOCATABLE=y<br />
CONFIG_EFI=y<br />
CONFIG_EFI_STUB=y<br />
CONFIG_FB_EFI=y<br />
CONFIG_FRAMEBUFFER_CONSOLE=y<br />
<br />
UEFI Runtime Variables Support ('''efivarfs''' filesystem - {{ic|/sys/firmware/efi/efivars}}). This option is important as this is required to manipulate UEFI Runtime Variables using tools like {{ic|/usr/bin/efibootmgr}}. The below config option has been added in kernel 3.10 and above.<br />
<br />
CONFIG_EFIVAR_FS=y<br />
<br />
UEFI Runtime Variables Support (old '''efivars sysfs''' interface - {{ic|/sys/firmware/efi/vars}}). This option should be disabled to prevent any potential issues with both efivarfs and sysfs-efivars enabled.<br />
<br />
CONFIG_EFI_VARS=n<br />
<br />
GUID Partition Table [[GPT]] config option - mandatory for UEFI support<br />
<br />
CONFIG_EFI_PARTITION=y<br />
<br />
{{Note|All of the above options are required to boot Linux via UEFI, and are enabled in Archlinux kernels in official repos.}}<br />
<br />
Retrieved from https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt .<br />
<br />
== UEFI Variables ==<br />
<br />
UEFI defines variables through which an operating system can interact with the firmware. UEFI Boot Variables are used by the boot-loader and used by the OS only for early system start-up. UEFI Runtime Variables allow an OS to manage certain settings of the firmware like the UEFI Boot Manager or managing the keys for UEFI Secure Boot Protocol etc. You can get the list using<br />
$ efivar -l<br />
<br />
=== UEFI Variables Support in Linux Kernel ===<br />
<br />
Linux kernel exposes EFI variables data to userspace via '''efivarfs''' ('''EFI''' '''VAR'''iable '''F'''ile'''S'''ystem) interface ({{ic|CONFIG_EFIVAR_FS}}) - mounted using {{ic|efivarfs}} kernel module at {{ic|/sys/firmware/efi/efivars}} - it has no maximum per-variable size limitation and supports UEFI Secure Boot variables. Introduced in kernel 3.8.<br />
<br />
=== Requirements for UEFI variable support ===<br />
<br />
# Kernel processor [[#UEFI Firmware bitness|bitness]] and EFI processor bitness should match.<br />
# Kernel should be booted in EFI mode (via [[EFISTUB]] or any [[Boot loaders|EFI boot loader]], not via BIOS/CSM or Apple's "bootcamp" which is also BIOS/CSM).<br />
# EFI Runtime Services support should be present in the kernel ({{ic|1=CONFIG_EFI=y}}, check if present with {{ic|zgrep CONFIG_EFI /proc/config.gz}}).<br />
# EFI Runtime Services in the kernel SHOULD NOT be disabled via kernel cmdline, i.e. {{ic|noefi}} kernel parameter SHOULD NOT be used.<br />
# {{ic|efivarfs}} filesystem should be mounted at {{ic|/sys/firmware/efi/efivars}}, otherwise follow [[#Mount efivarfs]] section below.<br />
# {{ic|efivar}} should list (option {{ic|-l}}) the EFI Variables without any error.<br />
<br />
If EFI Variables support does not work even after the above conditions are satisfied, try the below workarounds:<br />
<br />
# If any userspace tool is unable to modify efi variables data, check for existence of {{ic|/sys/firmware/efi/efivars/dump-*}} files. If they exist, delete them, reboot and retry again.<br />
# If the above step does not fix the issue, try booting with {{ic|efi_no_storage_paranoia}} kernel parameter to disable kernel efi variable storage space check that may prevent writing/modification of efi variables.<br />
<br />
{{Note|{{ic|efi_no_storage_paranoia}} should only be used when needed and should not be left as a normal boot option. The effect of this kernel command line parameter turns off a safeguard that was put in place to help avoid the bricking of machines when the NVRAM gets too full.}}<br />
<br />
==== Mount efivarfs ====<br />
<br />
{{Warning|1=''efivars'' is mounted writeable by default [https://github.com/systemd/systemd/issues/2402], which may cause permanent damage to the system. [https://bbs.archlinux.org/viewtopic.php?id=207549]{{Dead link|2016|08|21}} As such, consider mounting ''efivars'' read-only ({{ic|-o ro}}) as described below. Note that when it is mounted read-only, tools such as ''efibootmgr'' and bootloaders will not be able to change boot settings, nor will commands like {{ic|systemctl reboot --firmware-setup}} work.}}<br />
<br />
If {{ic|efivarfs}} is not automatically mounted at {{ic|/sys/firmware/efi/efivars}} by [[systemd]] during boot, then you need to manually mount it to expose UEFI variables to [[#Userspace tools]] like {{ic|efibootmgr}}:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
{{Note|The above command should be run both '''outside''' ('''before''') and '''inside''' the [[chroot]], if any.}}<br />
<br />
To mount {{ic|efivarfs}} read-only during boot, add to {{ic|/etc/fstab}}:<br />
<br />
{{hc|/etc/fstab|2=<br />
efivarfs /sys/firmware/efi/efivars efivarfs '''ro''',nosuid,nodev,noexec,noatime 0 0<br />
}}<br />
<br />
To remount with write support, run:<br />
<br />
# mount -o remount /sys/firmware/efi/efivars -o '''rw''',nosuid,nodev,noexec,noatime<br />
<br />
=== Userspace tools ===<br />
<br />
There are few tools that can access/modify the UEFI variables, namely<br />
<br />
* {{App|efivar|Library and Tool to manipulate UEFI Variables (used by efibootmgr)|https://github.com/vathpela/efivar|{{Pkg|efivar}}, {{AUR|efivar-git}}}}<br />
* {{App|efibootmgr|Tool to manipulate UEFI Firmware Boot Manager Settings|https://github.com/vathpela/efibootmgr|{{Pkg|efibootmgr}}, {{AUR|efibootmgr-git}}}}<br />
* {{App|uefivars|Dumps list of EFI variables with some additional PCI related info (uses efibootmgr code internally)|https://github.com/fpmurphy/Various/tree/master/uefivars-2.0|{{AUR|uefivars-git}}}}<br />
* {{App|efitools|Tools for manipulating UEFI secure boot platforms|http://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git|{{Pkg|efitools}}, {{AUR|efitools-git}}}}<br />
* {{App|Ubuntu's Firmware Test Suite|Test suite that performs sanity checks on Intel/AMD PC firmware|https://wiki.ubuntu.com/FirmwareTestSuite/|{{AUR|fwts-git}}}}<br />
<br />
==== efibootmgr ====<br />
<br />
{{Note|<br />
* If ''efibootmgr'' does not work on your system, you can reboot into [[#UEFI Shell]] and use {{ic|bcfg}} to create a boot entry for the bootloader.<br />
* If you are unable to use {{ic|efibootmgr}}, some UEFI firmwares allow users to directly manage uefi boot entries from within its boot-time interface. For example, some ASUS firmwares have an "Add New Boot Option" choice which enables you to select a local EFI System Partition and manually enter the EFI application location e.g. {{ic|\EFI\refind\refind_x64.efi}}.<br />
* The below commands use [[rEFInd]] boot-loader as example.<br />
}}<br />
<br />
To add a new boot option using ''efibootmgr'' you need to know three things:<br />
<br />
# The disk containing the ESP: {{ic|/dev/sd''X''}}<br />
# The partition number of the ESP on that disk: the {{ic|''Y''}} in {{ic|/dev/sdX''Y''}}<br />
# The path to the UEFI application (relative to the root of the ESP)<br />
<br />
For example, if you want to add a boot option for {{ic|/boot/efi/EFI/refind/refind_x64.efi}} where {{ic|/boot/efi}} is the mount point of the ESP, run<br />
<br />
{{hc|$ findmnt /boot/efi|2=<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/boot/efi /dev/sda1 vfat rw,flush,tz=UTC<br />
}}<br />
<br />
In this example, this indicates that the ESP is on disk {{ic|/dev/sda}} and has partition number 1. The path to the UEFI application relative to the root of the ESP is {{ic|/EFI/refind/refind_x64.efi}}. So you would create the boot entry as follows:<br />
<br />
# efibootmgr --create --disk /dev/sda --part 1 --loader /EFI/refind/refind_x64.efi --label "rEFInd Boot Manager"<br />
<br />
See {{man|8|efibootmgr|url=}} or [https://raw.githubusercontent.com/rhinstaller/efibootmgr/master/README efibootmgr README] for more info.<br />
<br />
{{Note|1=UEFI uses backward slash {{ic|\}} as path separator but ''efibootmgr'' automatically converts UNIX-style {{ic|/}} path separators.}}<br />
<br />
== UEFI Shell ==<br />
<br />
The UEFI Shell is a shell/terminal for the firmware which allows launching uefi applications which include uefi bootloaders. Apart from that, the shell can also be used to obtain various other information about the system or the firmware like memory map (memmap), modifying boot manager variables (bcfg), running partitioning programs (diskpart), loading uefi drivers, editing text files (edit), hexedit etc.<br />
<br />
=== Obtaining UEFI Shell ===<br />
<br />
You can download a BSD licensed UEFI Shell from Intel's Tianocore UDK/EDK2 Sourceforge.net project:<br />
* [[AUR]] package {{AUR|uefi-shell-git}} (recommended) - provides x86_64 Shell in x86_64 system and IA32 Shell in i686 system - compiled directly from latest Tianocore EDK2 SVN source<br />
* There are copies of Shell v1 and Shell v2 in the EFI directory on the Arch install media image.<br />
* [https://github.com/tianocore/edk2/tree/master/ShellBinPkg Precompiled UEFI Shell v2 binaries] (may not be up-to-date)<br />
* [https://github.com/tianocore/edk2/tree/master/EdkShellBinPkg Precompiled UEFI Shell v1 binaries] (not updated anymore upstream)<br />
* [http://dl.dropbox.com/u/17629062/Shell2.zip Precompiled UEFI Shell v2 binary with bcfg modified to work with UEFI pre-2.3 firmware] - from Clover EFI bootloader<br />
<br />
Shell v2 works best in UEFI 2.3+ systems and is recommended over Shell v1 in those systems. Shell v1 should work in all UEFI systems irrespective of the spec. version the firmware follows. More info at [http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ShellPkg ShellPkg] and [http://sourceforge.net/mailarchive/message.php?msg_id=28690732 this mail]{{Dead link|2016|08|21}}<br />
<br />
=== Launching UEFI Shell ===<br />
<br />
Few Asus and other AMI Aptio x86_64 UEFI firmware based motherboards (from Sandy Bridge onwards) provide an option called {{ic|"Launch EFI Shell from filesystem device"}} . For those motherboards, download the x86_64 UEFI Shell and copy it to your EFI System Partition as {{ic|<EFI_SYSTEM_PARTITION>/shellx64.efi}} (mostly {{ic|/boot/efi/shellx64.efi}}) .<br />
<br />
Systems with Phoenix SecureCore Tiano UEFI firmware are known to have embedded UEFI Shell which can be launched using either {{ic|F6}}, {{ic|F11}} or {{ic|F12}} key.<br />
<br />
{{Note|If you are unable to launch UEFI Shell from the firmware directly using any of the above mentioned methods, create a FAT32 USB pen drive with {{ic|Shell.efi}} copied as {{ic|(USB)/efi/boot/bootx64.efi}}. This USB should come up in the firmware boot menu. Launching this option will launch the UEFI Shell for you.}}<br />
<br />
=== Important UEFI Shell Commands ===<br />
<br />
UEFI Shell commands usually support {{ic|-b}} option which makes output pause after each page. Run {{ic|help -b}} to list available commands.<br />
<br />
More info at http://software.intel.com/en-us/articles/efi-shells-and-scripting/<br />
<br />
==== bcfg ====<br />
<br />
{{ic|bcfg}} modifies the UEFI NVRAM entries which allows the user to change the boot entries or driver options. This command is described in detail in page 83 (Section 5.3) of "UEFI Shell Specification 2.0" PDF document.<br />
<br />
{{Note|<br />
* Try {{ic|bcfg}} only if {{ic|efibootmgr}} fails to create working boot entries on your system.<br />
* UEFI Shell v1 official binary does not support {{ic|bcfg}} command. See [[#Obtaining UEFI Shell]] for a modified UEFI Shell v2 binary which may work in UEFI pre-2.3 firmwares.<br />
}}<br />
<br />
To dump a list of current boot entries:<br />
<br />
Shell> bcfg boot dump -v<br />
<br />
To add a boot menu entry for rEFInd (for example) as 4th (numbering starts from zero) option in the boot menu:<br />
<br />
Shell> bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"<br />
<br />
where {{ic|fs0:}} is the mapping corresponding to the EFI System Partition and {{ic|fs0:\EFI\refind\refind_x64.efi}} is the file to be launched.<br />
<br />
To add an entry to boot directly into your system without a bootloader, configure a boot option using your kernel as an [[EFISTUB#UEFI_Shell|EFISTUB]]:<br />
<br />
Shell> bcfg boot add '''N''' fs'''V''':\vmlinuz-linux "Arch Linux"<br />
Shell> bcfg boot -opt '''N''' "root='''/dev/sdX#''' initrd=\initramfs-linux.img"<br />
<br />
where {{ic|N}} is the priority, {{ic|V}} is the volume number of your EFI partition, and {{ic|/dev/sdX#}} is your root partition.<br />
<br />
To remove the 4th boot option:<br />
<br />
Shell> bcfg boot rm 3<br />
<br />
To move the boot option #3 to #0 (i.e. 1st or the default entry in the UEFI Boot menu):<br />
<br />
Shell> bcfg boot mv 3 0<br />
<br />
For bcfg help text:<br />
<br />
Shell> help bcfg -v -b<br />
<br />
or:<br />
<br />
Shell> bcfg -? -v -b<br />
<br />
==== map ====<br />
<br />
{{ic|map}} displays a list of device mappings i.e. the names of available file systems ({{ic|fs0}}) and storage devices ({{ic|blk0}}).<br />
<br />
Before running file system commands such as {{ic|cd}} or {{ic|ls}}, you need to change the shell to the appropriate file system by typing its name:<br />
<br />
Shell> fs0:<br />
fs0:\> cd EFI/<br />
<br />
==== edit ====<br />
<br />
{{ic|edit}} provides a basic text editor with an interface similar to nano, but slightly less functional. It handles UTF-8 encoding and takes care or LF vs CRLF line endings.<br />
<br />
For example, to edit rEFInd's {{ic|refind.conf}} in the EFI System Partition ({{ic|fs0:}} in the firmware),<br />
<br />
Shell> edit FS0:\EFI\refind\refind.conf<br />
<br />
Type {{ic|Ctrl-E}} for help.<br />
<br />
== UEFI Linux Hardware Compatibility ==<br />
<br />
See [[Unified Extensible Firmware Interface/Hardware]] for more information.<br />
<br />
== UEFI Bootable Media ==<br />
<br />
=== Create UEFI bootable USB from ISO ===<br />
<br />
Follow [[USB flash installation media#BIOS and UEFI Bootable USB]]<br />
<br />
=== Remove UEFI boot support from Optical Media ===<br />
<br />
{{Note|This section mentions removing UEFI boot support from a '''CD/DVD only''' (Optical Media), not from a USB flash drive.}}<br />
<br />
Most of the 32-bit EFI Macs and some 64-bit EFI Macs refuse to boot from a UEFI(X64)+BIOS bootable CD/DVD. If one wishes to proceed with the installation using optical media, it might be necessary to remove UEFI support first.<br />
<br />
* Mount the official installation media and obtain the {{ic|archisolabel}} as shown in the previous section.<br />
<br />
# mount -o loop ''input.iso'' /mnt/iso<br />
<br />
* Then rebuild the ISO, excluding the UEFI Optical Media booting support, using {{ic|xorriso}} from {{pkg|libisoburn}}. Be sure to set the correct archisolabel, e.g. "ARCH_201411" or similar:<br />
{{bc|1=<br />
$ xorriso -as mkisofs -iso-level 3 \<br />
-full-iso9660-filenames\<br />
-volid "''archisolabel''" \<br />
-appid "Arch Linux CD" \<br />
-publisher "Arch Linux <https://www.archlinux.org>" \<br />
-preparer "prepared by $USER" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot -boot-load-size 4 -boot-info-table \<br />
-isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \<br />
-output ''output.iso'' /mnt/iso/<br />
}}<br />
<br />
* Burn {{ic|''output.iso''}} to optical media and proceed with installation normally.<br />
<br />
== Testing UEFI in systems without native support ==<br />
<br />
=== OVMF for Virtual Machines ===<br />
<br />
[https://tianocore.github.io/ovmf/ OVMF] is a tianocore project to enable UEFI support for Virtual Machines. OVMF contains a sample UEFI firmware for QEMU.<br />
<br />
You can install {{pkg|ovmf}} from the extra repository and run it as follows:<br />
<br />
$ qemu-system-x86_64 -enable-kvm -net none -m 1024 -drive file=/usr/share/ovmf/ovmf_x64.bin,format=raw,if=pflash,readonly<br />
<br />
As shorter alternative, {{Pkg|ovmf}} can be loaded using {{ic|-bios}} parameter<br />
<br />
$ qemu-system-x86_64 -enable-kvm -m 1G -bios /usr/share/ovmf/ovmf_x64.bin<br />
<br />
=== DUET for BIOS only systems ===<br />
<br />
DUET is a tianocore project that enables chainloading a full UEFI environment from a BIOS system, in a way similar to BIOS OS booting. This method is being discussed extensively in http://www.insanelymac.com/forum/topic/186440-linux-and-windows-uefi-boot-using-tianocore-duet-firmware/. Pre-build DUET images can be downloaded from one of the repos at https://gitorious.org/tianocore_uefi_duet_builds {{Dead link|2016|08|21}}. Specific instructions for setting up DUET is available at https://gitorious.org/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/blobs/raw/master/Migle_BootDuet_INSTALL.txt {{Dead link|2016|08|21}}.<br />
<br />
You can also try http://sourceforge.net/projects/cloverefiboot/ which provides modified DUET images that may contain some system specific fixes and is more frequently updated compared to the gitorious repos.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Windows 7 will not boot in UEFI Mode ===<br />
<br />
If you have installed Windows to a different hard disk with GPT partitioning and still have a MBR partitioned hard disk in your computer, then it is possible that the firmware (UEFI) is starting its CSM support (for booting MBR partitions) and therefore Windows will not boot. To solve this merge your MBR hard disk to GPT partitioning or disable the SATA port where the MBR hard disk is plugged in or unplug the SATA connector from this hard disk.<br />
<br />
Mainboards with this kind of problem:<br />
<br />
* Gigabyte Z77X-UD3H rev. 1.1 (UEFI version F19e)<br />
** The firmware option for booting "UEFI Only" does not prevent the firmware from starting CSM.<br />
<br />
=== Windows changes boot order ===<br />
<br />
If you [[dual boot with Windows]] and your motherboard just boots Windows immediately instead of your chosen UEFI application, there are several possible causes and workarounds.<br />
<br />
* Ensure [[Dual boot with Windows#Fast_Start-Up|Fast Startup]] is disabled in your Windows power options<br />
* Ensure [[Secure Boot]] is disabled in your BIOS (if you are not using a signed boot loader)<br />
* Ensure your UEFI boot order does not have Windows Boot Manager set first e.g. using [[#efibootmgr]] and what you see in the configuration tool of the UEFI. Some motherboards override by default any settings set with efibootmgr by Windows if it detects it. This is confirmed in a Packard Bell laptop.<br />
* If your motherboard is booting the default UEFI path ({{ic|\EFI\BOOT\BOOTX64.EFI}}), this file may have been overwritten with the Windows boot loader. Try setting the correct boot path e.g. using [[#efibootmgr]].<br />
* If the previous steps do not work, you can tell the Windows boot loader to run a different UEFI application. From a Windows Administrator command prompt: {{bc|# bcdedit /set "{bootmgr}" path "\EFI\''path''\''to''\''app.efi''"}}<br />
* Alternatively, you can set a startup script in Windows that ensures that the boot order is set correctly every time you boot Windows.<br />
*# Open a command prompt with admin privlages. Run {{ic|bcdedit /enum firmware}} and find your desired boot entry.<br />
*# Copy the Identifier, including the brackets, e.g. {{ic|<nowiki>{31d0d5f4-22ad-11e5-b30b-806e6f6e6963}</nowiki>}}<br />
*# Create a batch file with the command {{ic|bcdedit /set {fwbootmgr} DEFAULT ''{copied boot identifier}''}}<br />
*# Open ''gpedit'' and under ''Local Computer Policy > Computer Configuration > Windows Settings > Scripts(Startup/Shutdown)'', choose ''Startup''<br />
*# Under the ''Scripts'' tab, choose the ''Add'' button, and select your batch file<br />
<br />
=== USB media gets struck with black screen ===<br />
<br />
This issue can occur due to [[KMS]] issue. Try [[Kernel mode setting#Disabling_modesetting|Disabling KMS]] while booting the USB.<br />
<br />
=== Booting 64-bit kernel on 32-bit UEFI ===<br />
<br />
Both Official ISO ([[Archiso]]) and [[Archboot]] iso use EFISTUB (via [[systemd-boot]] Boot Manager for menu) for booting the kernel in UEFI mode. In such a case you have to use [[GRUB]] as the USB's UEFI bootloader by following the below section.<br />
<br />
==== Using GRUB ====<br />
{{Tip|The given configuration entries can also be entered inside a [[GRUB#Using_the_command_shell|GRUB command-shell]].}}<br />
<br />
* [[USB flash installation media#Using_manual_formatting|Create an editable USB Flash Installation]]. Since we are going to use GRUB, you only need to follow the steps up until the {{ic|syslinux}} part<br />
<br />
* Backup {{ic|EFI/boot/loader.efi}} to {{ic|EFI/boot/gummiboot.efi}}<br />
<br />
* [[GRUB#GRUB_standalone|Create a GRUB standalone image]] and copy the generate {{ic|grub*.efi}} to the USB as {{ic|EFI/boot/loader.efi}} and/or {{ic|EFI/boot/bootia32.efi}}<br />
<br />
* Create {{ic|EFI/boot/grub.cfg}} with the following contents (replace {{ic|ARCH_YYYYMM}} with the required archiso label e.g. {{ic|ARCH_201507}}):<br />
<br />
{{hc|grub.cfg for Official ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
{{hc|grub.cfg for Archboot ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux x86_64 Archboot" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
linux /boot/vmlinuz_x86_64 cgroup_disable=memory loglevel=7 add_efi_memmap<br />
initrd /boot/initramfs_x86_64.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
=== UEFI boot loader does not show up in firmware menu ===<br />
<br />
On certain UEFI motherboards like some boards with an Intel Z77 chipset, adding entries with {{ic|efibootmgr}} or {{ic|bcfg}} from the EFI Shell will not work because they do not show up on the boot menu list after being added to NVRAM.<br />
<br />
This issue is caused because the motherboards can only load Microsoft Windows. To solve this you have to place the {{ic|.efi}} file in the location that Windows uses.<br />
<br />
Copy the {{ic|bootx64.efi}} file from the Arch Linux installation medium ({{ic|FSO:}}) to the Microsoft directory your [[ESP]] partition on your hard drive ({{ic|FS1:}}). Do this by booting into EFI shell and typing:<br />
<br />
FS1:<br />
cd EFI<br />
mkdir Microsoft<br />
cd Microsoft<br />
mkdir Boot<br />
cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi<br />
<br />
After reboot, any entries added to NVRAM should show up in the boot menu.<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:UEFI]]<br />
* [http://www.uefi.org/home/ UEFI Forum] - contains the official [http://uefi.org/specifications UEFI Specifications] - GUID Partition Table is part of UEFI Specification<br />
* [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/ UEFI boot: how does that actually work, then? - A blog post by AdamW]<br />
* [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt Linux Kernel x86_64 UEFI Documentation]<br />
* [http://www.intel.com/technology/efi/ Intel's page on EFI]{{Dead link|2016|07|16}}<br />
* [http://firmware.intel.com/ Intel Architecture Firmware Resource Center]<br />
* [http://firmware.intel.com/blog/linux-efi-boot-stub Matt Fleming - The Linux EFI Boot Stub]<br />
* [http://firmware.intel.com/blog/accessing-uefi-variables-linux Matt Fleming - Accessing UEFI Variables from Linux]<br />
* [http://www.rodsbooks.com/linux-uefi/ Rod Smith - Linux on UEFI: A Quick Installation Guide]<br />
* [https://lkml.org/lkml/2011/6/8/322 UEFI Boot problems on some newer machines (LKML)]<br />
* [http://linuxplumbers.ubicast.tv/videos/plumbing-uefi-into-linux/ LPC 2012 Plumbing UEFI into Linux]<br />
* [http://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-1/ LPC 2012 UEFI Tutorial : part 1]<br />
* [http://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-2/ LPC 2012 UEFI Tutorial : part 2]<br />
* [http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Welcome_to_TianoCore Intel's Tianocore Project] for Open-Source UEFI firmware which includes DuetPkg for direct BIOS based booting and OvmfPkg used in QEMU and Oracle VirtualBox<br />
* [https://jdebp.eu/FGA/efi-boot-process.html FGA: The EFI boot process]<br />
* [http://www.microsoft.com/whdc/device/storage/GPT_FAQ.mspx Microsoft's Windows and GPT FAQ]<br />
* [https://gitorious.org/tianocore_uefi_duet_builds/pages/Windows_x64_BIOS_to_UEFI Convert Windows x64 from BIOS-MBR mode to UEFI-GPT mode without Reinstall]{{Dead link|2016|08|21}}<br />
* [https://gitorious.org/tianocore_uefi_duet_builds/pages/Linux_Windows_BIOS_UEFI_boot_USB Create a Linux BIOS+UEFI and Windows x64 BIOS+UEFI bootable USB drive]{{Dead link|2016|08|21}}<br />
* [http://rodsbooks.com/bios2uefi/ Rod Smith - A BIOS to UEFI Transformation]<br />
* [http://software.intel.com/en-us/articles/efi-shells-and-scripting/ EFI Shells and Scripting - Intel Documentation]<br />
* [http://software.intel.com/en-us/articles/uefi-shell/ UEFI Shell - Intel Documentation]<br />
* [http://www.hpuxtips.es/?q=node/293 UEFI Shell - bcfg command info]</div>Leeo97onehttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=443449List of applications/Internet2016-07-27T18:44:13Z<p>Leeo97one: Add Discord</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[pt:List of applications/Internet]]<br />
[[cs:List of applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[ru:List of applications/Internet]]<br />
[[zh-cn:List of applications/Internet]]<br />
[[zh-tw:List of applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
{{Note|1=For possibly more up to date selection of applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=13&SeB=nd&SB=n&SO=a&PP=50 AUR 'network' category]}}<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, ncurses, GTK and Dmenu clients are available.|https://01.org/connman|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|https://wiki.gnome.org/Projects/NetworkManager|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through [[udev]].|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|https://launchpad.net/wicd|{{Pkg|wicd}}}}<br />
<br />
=== VPN clients ===<br />
<br />
* {{App|[[OpenConnect]]|Supports Cisco and Juniper VPNs.|http://www.infradead.org/openconnect/|{{pkg|openconnect}}}}<br />
* {{App|[[PPTP Client]]|To connect to PPTP VPNs, like Microsoft VPNs (MPPE).|http://pptpclient.sourceforge.net/|{{pkg|pptpclient}}}}<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [links -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images. It has javascript support too.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://repo.or.cz/w/conkeror.git/|{{AUR|conkeror-git}}}}<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|Seamonkey|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|A Firefox fork distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|A Firefox fork focussing on speed, with a pre-Firefox 29 interface. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.|http://www.palemoon.org/|{{AUR|palemoon-bin}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|Brave|Web browser that blocks ads and trackers by default.|https://www.brave.com/|{{AUR|brave}}}}<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Google Chrome]]|Web browser developed by Google.|https://www.google.com/chrome/|{{AUR|google-chrome}}}}<br />
* {{App|Liri|A minimalistic material design web browser written for Papyros.|http://liriproject.me/browser|{{AUR|liri-browser}}}}<br />
* {{App|[[Opera]]|Highly customizable browser with focuses on an adherence to web rendering standards.|https://opera.com|{{Pkg|opera}}}}<br />
* {{App|Quill|A simple web browser that hopefully won't leave you asking "Why is the RAM gone?".|https://bitbucket.org/xiannox/quill|{{AUR|quill-git}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on QtWebEngine, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
* {{App|[[Vivaldi]]|An advanced browser made with the power user in mind.|https://vivaldi.com/|{{AUR|vivaldi}}}}<br />
* {{App|Yandex.Browser|Combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|https://browser.yandex.ru/beta/|{{AUR|yandex-browser-beta}}}}<br />
<br />
===== WebKit-based =====<br />
<br />
See also [[Wikipedia:WebKit]].<br />
<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|Lariza|A simple web browser using GTK+ 3, GLib and WebKit2GTK+.|https://github.com/vain/lariza/|{{AUR|lariza-git}}}}<br />
* {{App|Maxthon|A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. The linux version of Maxthon has not been updated since September 2014.|http://www.maxthon.cn/|{{AUR|maxthon-browser}}}}<br />
* {{App|Rainbow Lollipop|The visual history browser.|http://rainbow-lollipop.de/|{{AUR|rainbow-lollipop-git}}}}<br />
* {{App|Surf 2|A simple web browser based on WebKit2GTK+.|http://surf.suckless.org|{{aur|surf-webkit2gtk-git}}}}<br />
* {{App|Webby|Allows to use web apps as regular desktop apps, integrated with the OS, without tabs and using the default system launcher.|https://launchpad.net/webby-browser|{{aur|webby-browser-bzr}}}}<br />
<br />
====== Browsers based on webkitgtk/webkitgtk2/qtwebkit ======<br />
<br />
{{Warning|The following browsers are based on one of three WebKit ports that are today considered insecure and outdated. GTK+ browsers should be switching to webkit2gtk and Qt browsers to qt5-webengine (Blink). More info [https://blogs.gnome.org/mcatanzaro/2016/02/01/on-webkit-security-updates/ here].}}<br />
<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://github.com/arora/arora|{{AUR|arora-git}}}}<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji-git}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{Pkg|luakit}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Otter-browser|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{Pkg|qutebrowser}}}}<br />
* {{App|[[Wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Surf|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] (formerly known as ''xxxterm'') |Webkit minimalist web browser with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{AUR|xombrero-git}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]].|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt and KHTML, part of {{Grp|kdebase}}.|http://konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own custom rendering engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
<br />
=== File sharing ===<br />
<br />
==== Download managers ====<br />
<br />
* {{App|[[Wikipedia:Wget#GWget|Gwget]]|Download manager for GNOME.|https://projects.gnome.org/gwget/|{{Pkg|gwget}}}}<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|uGet|GTK+ download manager featuring download classification and HTML import.|http://ugetdm.com/|{{Pkg|uget}}}}<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|ncftp|A set of free application programs implementing FTP.|http://www.ncftp.com/|{{Pkg|ncftp}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
* {{App|[[bftpd]]|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== Distributed file systems ====<br />
<br />
* {{App|[[Ceph]]|Distributed object store and file system designed to provide excellent performance, reliability and scalability.|https://ceph.com/|{{Pkg|ceph}}}}<br />
<br />
* {{App|GlusterFS|Cluster file system capable of scaling to several peta-bytes.|http://www.gluster.org/|{{Pkg|glusterfs}}}}<br />
<br />
* {{App|Sheepdog|Distributed object storage system for volume and container services and manages the disks and nodes intelligently.|https://sheepdog.github.io/sheepdog/}}<br />
<br />
* {{App|[[Wikipedia:Tahoe-LAFS|Tahoe-LAFS]]|Tahoe Least-Authority Filesystem is a free and open, secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.<br />
|https://tahoe-lafs.org/|{{AUR|tahoe-lafs}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|http://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}} {{Pkg|qbittorrent-nox}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
* {{App|Vuze Plus Extreme Mod|A modded version of the Vuze BitTorrent client with multiple spoofing capabilities.|http://www.sb-innovation.de/f41/vuze-extreme-mod-sb-innovation-5-6-1-3-a-32315/|{{AUR|vuze-extreme-mod}}}}<br />
<br />
==== Other P2P networks ====<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|Sendanywhere| GTK2 client for the cross platform P2P file sharing service, Sendanywhere. Allow users to send files of any type and size to other Android, iOS, and Desktop devices.|https://www.send-anywhere.com|{{AUR|sendanywhere}}}}<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|https://sourceforge.net/projects/sharelin/|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
==== Video downloaders ====<br />
<br />
* {{App|youtube-dl|Download videos from YouTube and many other platforms.|http://rg3.github.io/youtube-dl|{{Pkg|youtube-dl}}}}<br />
* {{App|You-Get|Dumb downloader that scrapes the web.|https://you-get.org/|{{Pkg|you-get}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|http://patches.freeiz.com/alpine/|{{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|http://sourceforge.net/projects/s-nail/|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|[[nmh]]|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|https://sup-heliotrope.github.io/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Balsa|Simple and light email client that is part of the Gnome project.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client used in GNOME by default. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|FossaMail|FossaMail is a Mozilla Thunderbird-based mail, news and chat client by the Pale Moon developers.|http://www.fossamail.org|{{AUR|fossamail-bin}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|N1|A new mail client, built on the modern web and designed to be extended.|https://www.nylas.com/N1/|{{AUR|n1}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://wiki.gnome.org/Projects/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari/|{{Pkg|polari}}}}<br />
* {{App|[[Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client that works on both Linux and Windows.|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}<br />
* {{App|xmpp-client|A minimalist XMPP client with OTR support.|https://github.com/agl/xmpp-client|{{AUR|go-xmpp-client}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing.|http://psi-im.org/|{{Pkg|psi}} {{Pkg|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|http://psi-plus.com/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}}}<br />
* {{App|Openfire|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|see [[Tox]]}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|PyGTK instant messenger for the Windows Live Messenger network, also compatible with Jabber, Facebook and Google Talk.|http://emesene.org/|{{AUR|emesene}}{{Broken package link|{{aur-mirror|emesene}}}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (software)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink-darcs}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:QuteCom|QuteCom]]|Softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place (formerly Wengo Phone).|http://trac.qutecom.org/|{{AUR|qutecom-hg}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{Pkg|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
* {{App|[[Wikipedia:Discord (software)|Discord]]|All-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone.|https://discordapp.com/|{{AUR|discord-canary}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:Ring_(software)|Ring]] |Open-source SIP/IAX2 compatible softphone with PulseAudio support (formerly known as SFLphone).|http://ring.cx/|{{AUR|ring-daemon}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://github.com/drizzt/gladstone|{{AUR|gladstone-drizztbsd-git}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
* {{App|Sipsak|Small command-line tool for developers and administrators of SIP applications.|http://sipsak.org/|{{AUR|sipsak}}{{Broken package link|{{aur-mirror|sipsak}}}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition applications]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{Pkg|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}.|http://kde.org/applications/internet/akregator/|{{Pkg|akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.| https://git.gnome.org/browse/blam|{{Pkg|blam}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.| http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://github.com/martinrotter/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}{{Broken package link|{{aur-mirror|tickr}}}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal-bzr}}{{Broken package link|{{aur-mirror|vocal-bzr}}}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{aur|pan}}}}<br />
* {{app|[[Wikipedia:slrn|slrn]]|An open source text-based news client.|http://www.slrn.org/|{{pkg|slrn}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{App|Nikola|A static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{AUR|python-nikola}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{Pkg|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux.|http://birdieapp.github.io/ |{{AUR|birdie-git}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|[[Wikipedia:Gwibber|Gwibber]]|GTK-based microblogging client with support for Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu.|http://gwibber.com/|{{AUR|gwibber}}{{Broken package link|{{aur-mirror|gwibber}}}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}<br />
* {{App|Rainbowstream|A powerful and fully-featured console Twitter client written in Python.|http://www.rainbowstream.org/|{{AUR|rainbowstream}}}}<br />
* {{App|ttytter|Easily scriptable Twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{AUR|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|https://github.com/satanas/Turpial|{{AUR|turpial-git}}}}<br />
* {{App|turses|Twitter client for the console based off ''tyrs'' with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc).}}<br />
<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|http://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|haste}}{{Broken package link|{{aur-mirror|haste}}}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{AUR|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse-git}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|[[pbpst]]|A small tool to interact with pb instances (eg [https://ptpb.pw ptpb.pw]).|https://github.com/HalosGhost/pbpst|{{Pkg|pbpst}} {{AUR|pbpst-git}}}}<br />
* {{App|ruby-haste|Client for [http://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See the main article: [[Bitcoin]].<br />
<br />
* {{App|Armory|Bitcoin client with features such as support for multiple wallets, importing keys and backups.|https://github.com/etotheipi/BitcoinArmory|{{AUR|armory-git}}}}<br />
* {{App|[[Bitcoin]]|Official tool to manage Bitcoins, a P2P currency.|http://bitcoin.org/|{{Pkg|bitcoin-daemon}} {{Pkg|bitcoin-qt}}}}<br />
* {{App|Electrum|An easy to use Bitcoin client.|http://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|MultiBit|A lightweight Bitcoin desktop client powered by the BitCoinJ library.|https://multibit.org/|{{Pkg|multibit}}}}<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>Leeo97one